import type { AutomationRouteBinding } from '../automation/routes.js';
import type { SharedSessionParticipant, SharedSessionRecord, SubmitSharedSessionMessageInput } from './session-types.js';
export declare const RESERVED_SHARED_SESSION_IDS: Set<string>;
export interface CreateSharedSessionRecordInput {
    readonly id?: string | undefined;
    readonly title?: string | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
    readonly routeBinding?: AutomationRouteBinding | undefined;
    readonly participant?: SharedSessionParticipant | undefined;
    readonly kind?: SharedSessionRecord['kind'] | undefined;
}
export declare function assertSharedSessionIdAllowed(id: string | undefined): void;
export declare function createSharedSessionRecord(input: CreateSharedSessionRecordInput): SharedSessionRecord;
export declare function closeSharedSessionRecord(session: SharedSessionRecord): SharedSessionRecord;
export declare function reopenSharedSessionRecord(session: SharedSessionRecord): SharedSessionRecord;
export declare function bindSharedSessionAgent(session: SharedSessionRecord, agentId: string): SharedSessionRecord;
export declare function attachSharedSessionParticipantAndRoute(input: {
    readonly session: SharedSessionRecord;
    readonly message: Omit<SubmitSharedSessionMessageInput, 'metadata'>;
    readonly binding?: AutomationRouteBinding | undefined;
}): SharedSessionRecord;
//# sourceMappingURL=session-broker-sessions.d.ts.map