import type { SharedApprovalRecord, SharedSessionRecord } from '../../control-plane/index.js';
import { type DirectTransportServices } from '../foundation-services.js';
import { type OperatorClient, type OperatorControlPlaneSnapshot, type OperatorProvidersSnapshot } from '../operator-client.js';
import { type PeerClient, type PeerClientSnapshot } from '../peer-client.js';
import type { RuntimeServices } from '../services.js';
import type { UiSessionSnapshot, UiTasksSnapshot } from '../ui-read-models.js';
import type { ShellPathService } from '@pellux/goodvibes-sdk/platform/runtime/shell-paths';
export { createDirectClientTransport } from '@pellux/goodvibes-sdk/platform/runtime/transports/direct-client';
export type { DirectClientTransport } from '@pellux/goodvibes-sdk/platform/runtime/transports/direct-client';
export interface DirectTransportSnapshot {
    readonly kind: 'direct';
    readonly operator: {
        readonly currentSession: UiSessionSnapshot;
        readonly tasks: UiTasksSnapshot;
        readonly approvals: readonly SharedApprovalRecord[];
        readonly sessions: readonly SharedSessionRecord[];
        readonly controlPlane: OperatorControlPlaneSnapshot;
        readonly providers: OperatorProvidersSnapshot;
        readonly shellPaths: ShellPathService;
    };
    readonly peer: PeerClientSnapshot;
}
export interface DirectTransport {
    readonly kind: 'direct';
    readonly operator: OperatorClient;
    readonly peer: PeerClient;
    getOperatorClient(): OperatorClient;
    getPeerClient(): PeerClient;
    snapshot(): Promise<DirectTransportSnapshot>;
}
export declare function createDirectTransportFromServices(services: DirectTransportServices): DirectTransport;
export declare function createRuntimeDirectTransport(runtimeServices: RuntimeServices): DirectTransport;
export declare function createDirectTransport(runtimeServices: RuntimeServices): DirectTransport;
//# sourceMappingURL=direct.d.ts.map