import type { ControlPlaneProxyClient } from '../../../client-shared/api/proxy.js';
import type { ControlPlaneSessionEventEnvelope } from '../../../client-shared/api/types.js';
export type ControlPlaneSessionSubscriptionServiceOptions = {
    client: ControlPlaneProxyClient;
    onSessionsUpdated: () => void;
    onSessionEvent: (workspaceId: string, event: ControlPlaneSessionEventEnvelope) => void;
    onSessionListError: (error: Error) => void;
    onSessionStreamError: (error: Error) => void;
    onSessionStreamStarted: () => void;
    onSessionStreamComplete: () => void;
};
/**
 * Owns cli-v2 control-plane subscription handles and address deduping.
 */
export declare class ControlPlaneSessionSubscriptionService {
    private readonly options;
    private sessionsSubscription?;
    private sessionSubscription?;
    private sessionAddress?;
    constructor(options: ControlPlaneSessionSubscriptionServiceOptions);
    subscribeToSessionList(workspaceId: string): void;
    subscribeToSessionEvents(workspaceId: string, sessionId: string): void;
    dispose(): void;
}
//# sourceMappingURL=control-plane-session-subscription-service.d.ts.map