import type { ActionCreator } from '../../../libs/cargo-hold'; import type { HasDomainName, HasImplementationName, HasInstanceId, IntegrationContainer } from './domain.types'; export interface DomainActionCreators { setImplementation: ActionCreator<`${string}:setImplementation`, undefined, HasDomainName & IntegrationContainer, [ implementation: IntegrationContainer ]>; setConfig: ActionCreator<`${string}:setConfig`, undefined, HasDomainName & HasImplementationName & HasInstanceId & { config: Record; options: unknown; }, [ instanceId: string, integrationName: string, config: Record, options: unknown ]>; removeImplementation: ActionCreator<`${string}:removeImplementation`, undefined, HasDomainName & HasImplementationName, [ integrationName: string ]>; removeInstance: ActionCreator<`${string}:removeInstance`, undefined, HasDomainName & HasInstanceId, [ instanceId: string ]>; } export declare const createDomainActionCreators: (options: HasDomainName) => DomainActionCreators; export interface DomainInternalActionCreators { setInstance: ActionCreator<`${string}:setInstance`, undefined, HasDomainName & HasImplementationName & HasInstanceId & { instance: ImplementationInterface; }, [ instanceId: string, integrationName: string, instance: ImplementationInterface ]>; } export declare const createDomainInternalActionCreators: (options: HasDomainName) => DomainInternalActionCreators;