interface SamlAssertionReplayStore { consume(assertionId: string): Promise; } /** * Drop stored IDs only after SAML NotOnOrAfter would already reject them. * 1 hour is longer than typical assertion lifetimes (minutes) plus * SamlServiceProvider acceptedClockSkewMs (5000). */ declare const REPLAY_RETENTION_MS: number; declare class InMemorySamlAssertionReplayStore implements SamlAssertionReplayStore { private readonly seen; consume(assertionId: string): Promise; clear(): void; private gc; } declare function setSamlAssertionReplayStoreForTests(store: SamlAssertionReplayStore | null): void; declare function resetSamlReplayCacheForTests(): void; declare function consumeSamlAssertion(assertionId: string): Promise; export type { SamlAssertionReplayStore }; export { consumeSamlAssertion, InMemorySamlAssertionReplayStore, REPLAY_RETENTION_MS, resetSamlReplayCacheForTests, setSamlAssertionReplayStoreForTests, };