import type { SubmitSharedSessionMessageInput } from './session-types.js';
import type { SharedSessionInputIntent, SharedSessionInputRecord } from './session-intents.js';
import type { SharedSessionRecord } from './session-types.js';
export interface SharedSessionInputStore {
    readonly sessions: Map<string, SharedSessionRecord>;
    readonly inputs: Map<string, SharedSessionInputRecord[]>;
}
export declare function touchSharedSession(store: SharedSessionInputStore, sessionId: string): void;
export declare function refreshPendingInputCount(store: SharedSessionInputStore, sessionId: string): void;
export declare function recordSharedSessionInput(store: SharedSessionInputStore, input: {
    readonly sessionId: string;
    readonly intent: SharedSessionInputIntent;
    readonly message: SubmitSharedSessionMessageInput;
    readonly routeId?: string | undefined;
    readonly causationId?: string | undefined;
    readonly maxPersistedInputs: number;
}): SharedSessionInputRecord;
export declare function updateSharedSessionInput(store: SharedSessionInputStore, sessionId: string, inputId: string, transform: (input: SharedSessionInputRecord) => SharedSessionInputRecord): SharedSessionInputRecord | null;
export declare function claimNextQueuedSessionInput(store: SharedSessionInputStore, sessionId: string, agentId: string): SharedSessionInputRecord | null;
export declare function finalizeAgentSessionInputs(store: SharedSessionInputStore, sessionId: string, agentId: string, nextState: Extract<SharedSessionInputRecord['state'], 'completed' | 'failed' | 'cancelled'>, error?: string): SharedSessionInputRecord[];
//# sourceMappingURL=session-broker-inputs.d.ts.map