/**
 * External dependencies
 */
import type { ServiceResource } from '@ai-services/ai/types';
import type { StoreConfig, Action, ThunkArgs } from '../utils/store-types';
export declare enum ActionType {
    Unknown = "REDUX_UNKNOWN",
    ReceiveServices = "RECEIVE_SERVICES",
    ReceiveService = "RECEIVE_SERVICE"
}
type UnknownAction = Action<ActionType.Unknown>;
type ReceiveServicesAction = Action<ActionType.ReceiveServices, {
    services: ServiceResource[];
}>;
type ReceiveServiceAction = Action<ActionType.ReceiveService, {
    service: ServiceResource;
}>;
export type CombinedAction = UnknownAction | ReceiveServicesAction | ReceiveServiceAction;
export type State = {
    services: Record<string, ServiceResource> | undefined;
};
export type ActionCreators = typeof actions;
export type Selectors = typeof selectors;
type DispatcherArgs = ThunkArgs<State, ActionCreators, CombinedAction, Selectors>;
declare const actions: {
    /**
     * Receives services from the server.
     *
     * @since 0.1.0
     *
     * @param services - Services received from the server.
     * @returns Action creator.
     */
    receiveServices(services: ServiceResource[]): ({ dispatch }: DispatcherArgs) => void;
    /**
     * Receives a service from the server.
     *
     * @since 0.1.0
     *
     * @param service - Service received from the server.
     * @returns Action creator.
     */
    receiveService(service: ServiceResource): ({ dispatch }: DispatcherArgs) => void;
    /**
     * Refreshes a service from the server.
     *
     * @since 0.1.0
     *
     * @param slug - Service slug.
     * @returns Action creator.
     */
    refreshService(slug: string): ({ dispatch, select }: DispatcherArgs) => Promise<void>;
};
declare const selectors: {
    getServices: (state: State) => Record<string, ServiceResource> | undefined;
    getService: {
        (_state: State, slug: string): ServiceResource | null | undefined;
        isRegistrySelector?: boolean;
        registry?: any;
    };
};
declare const storeConfig: StoreConfig<State, ActionCreators, CombinedAction, Selectors>;
export default storeConfig;
//# sourceMappingURL=services.d.ts.map