/** * First Message Variant Gate * * Tracks new sessions to apply variants only on the first message. * Prevents variants from being applied to forked/child sessions. */ type SessionInfo = { id?: string; parentID?: string; }; /** * Creates a gate that tracks which sessions need variant applied on first message */ export declare function createFirstMessageVariantGate(): { /** * Mark a newly created session as pending variant application * Only marks non-child sessions (no parentID) */ markSessionCreated(info?: SessionInfo): void; /** * Check if this session should have variant overridden */ shouldOverride(sessionID?: string): boolean; /** * Mark variant as applied for this session */ markApplied(sessionID?: string): void; /** * Clear session from tracking (on session delete) */ clear(sessionID?: string): void; }; export type FirstMessageVariantGate = ReturnType; export {};