import type { ApprovalBroker } from '../control-plane/approval-broker.js';
import type { SharedSessionBroker } from '../control-plane/session-broker.js';
import type { SecretsManager } from '../config/secrets.js';
import type { ServiceRegistry } from '../config/service-registry.js';
import type { SubscriptionManager } from '../config/subscriptions.js';
import type { ProviderRegistry } from '../providers/registry.js';
import type { RuntimeServices } from './services.js';
import type { ShellPathService } from './shell-paths.js';
import type { UiRuntimeEvents } from './ui-events.js';
import { createCoreReadModels } from './ui-read-models-core.js';
import { createOperationsReadModels, type UiOperationsReadModelOptions } from './ui-read-models-operations.js';
import type { PeerClientDependencies } from './peer-client.js';
export interface OperatorClientReadModels {
    readonly controlPlane: ReturnType<typeof createOperationsReadModels>['controlPlane'];
    readonly providers: ReturnType<typeof createCoreReadModels>['providers'];
    readonly session: ReturnType<typeof createCoreReadModels>['session'];
    readonly tasks: ReturnType<typeof createCoreReadModels>['tasks'];
}
export interface OperatorClientServices {
    readonly events: UiRuntimeEvents;
    readonly shellPaths: ShellPathService;
    readonly readModels: OperatorClientReadModels;
    readonly sessionBroker: SharedSessionBroker;
    readonly approvalBroker: ApprovalBroker;
    readonly providerRegistry: ProviderRegistry;
    readonly serviceRegistry: ServiceRegistry;
    readonly subscriptionManager: SubscriptionManager;
    readonly secretsManager: SecretsManager;
}
export interface OperatorClientServicesOptions extends UiOperationsReadModelOptions {
}
export interface DirectTransportServices {
    readonly operator: OperatorClientServices;
    readonly peer: PeerClientDependencies;
}
export declare function createOperatorClientServices(runtimeServices: RuntimeServices, options?: OperatorClientServicesOptions): OperatorClientServices;
export declare function createPeerClientDependencies(runtimeServices: Pick<RuntimeServices, 'distributedRuntime' | 'remoteRunnerRegistry' | 'remoteSupervisor' | 'runtimeStore'>): PeerClientDependencies;
export interface DirectTransportServicesOptions extends OperatorClientServicesOptions {
}
export declare function createDirectTransportServices(runtimeServices: RuntimeServices, options?: DirectTransportServicesOptions): DirectTransportServices;
//# sourceMappingURL=foundation-services.d.ts.map