import type { SharedSessionMessage, SharedSessionMessageRole, SharedSessionRecord } from './session-types.js';
export interface SharedSessionMessageStore {
    readonly sessions: Map<string, SharedSessionRecord>;
    readonly messages: Map<string, SharedSessionMessage[]>;
}
export interface AppendSharedSessionMessageInput {
    readonly sessionId: string;
    readonly role: SharedSessionMessageRole;
    readonly body: string;
    readonly surfaceKind?: SharedSessionMessage['surfaceKind'] | undefined;
    readonly surfaceId?: string | undefined;
    readonly routeId?: string | undefined;
    readonly agentId?: string | undefined;
    readonly userId?: string | undefined;
    readonly displayName?: string | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
}
export declare function listSharedSessionMessages(store: SharedSessionMessageStore, sessionId: string, limit?: number): SharedSessionMessage[];
export declare function appendSharedSessionMessage(store: SharedSessionMessageStore, input: AppendSharedSessionMessageInput, maxPersistedMessages: number): SharedSessionMessage;
export declare function buildSharedSessionContinuationTask(input: {
    readonly session: SharedSessionRecord | null;
    readonly messages: readonly SharedSessionMessage[];
    readonly fallbackSessionId: string;
}): string;
//# sourceMappingURL=session-broker-messages.d.ts.map