import type { ContactKind } from './sessionContact'; /** * The number and the address the user has given, held past the round that * collected them. * * A session verifies one channel per round, and the reducer drops what was * collected once the round changes — so the code screen has nowhere else to * read the destination it names. */ export interface KnownContacts { phone?: string; email?: string; } /** Records one answer under the channel it can carry a code on. */ export declare function rememberContact(known: KnownContacts, kind: ContactKind, value: string): KnownContacts; /** Where a round's code went, or `undefined` when the user never gave it. */ export declare function contactOnChannel(known: KnownContacts, isSms: boolean): string | undefined; /** * Everything the client can name, the collected value over the host's. * * The email round goes to the address the host asserted for this user, and * `POST /fiat/session` never asks for one — so without the host's own value * the screen can only say "your email". Whatever the step did collect wins: * that is what actually opened the session. */ export declare function resolveContacts(hostEmail: string | undefined, collected: KnownContacts): KnownContacts; //# sourceMappingURL=knownContacts.d.ts.map