import { AssistantLanguage } from './languages'; export interface AssistantLanguagePair { /** What the user speaks or types. Drives the recogniser. */ input: AssistantLanguage; /** What the assistant answers in. Drives the prompt directive and the voice. */ reply: AssistantLanguage; /** * A human chose this reply language, rather than it being guessed. * * `buildLanguagePreamble` uses this to decide whether the language the user * WROTE IN overrides their setting. For a guess it should — what they typed is * better evidence than the interface language. For a choice it must not, or * the preference is inert for everyone who types rather than dictates. * * ★ True when EITHER field was pinned, not only the reply field. Someone who * picked Tamil before this setting existed has `replyLanguage` null and means * "answer me in Tamil"; reading only the reply field would decide they never * chose anything and hand their setting back to the mirror clause — silently * re-breaking, for every existing user, the exact bug that clause was written * to fix. * * False only when NOTHING was pinned and the language came from the interface. * * Resolved rather than merely non-null, so a stale persisted code from a build * that offered more languages is not mistaken for a decision. */ replyIsExplicit: boolean; } export declare function resolveLanguagePair(inputCode: string | null | undefined, replyCode: string | null | undefined, appLocale: string): AssistantLanguagePair; /** * Does the reply language follow the input, or has it been pinned? * * The selector shows "Match my language" for the former, and it is the default. */ export declare function replyFollowsInput(replyCode: string | null | undefined): boolean; //# sourceMappingURL=languagePair.d.ts.map