import { type CloudAsrCredentialField } from '../asr/providers.js'; import type { EarsSettingsPatch } from '../remote-contract.js'; import { type FieldName } from './settings-fields.js'; export interface SettingsSubmission { readonly patch: EarsSettingsPatch; readonly drafts: ReadonlyMap; readonly credentialClears: ReadonlySet; } /** Owns editable text, write-only credential clears, and save reconciliation. */ export declare class SettingsDraftController { private readonly draftValues; private readonly pendingCredentialClears; get(field: FieldName): string | undefined; has(field: FieldName): boolean; entries(): ReadonlyMap; get size(): number; /** Compatibility primitives for the coordinating controller's snapshot code. */ set(field: FieldName, text: string): this; delete(field: FieldName): boolean; clearDrafts(): void; edit(field: FieldName, text: string): void; clearCredential(field: CloudAsrCredentialField): void; undoCredentialClear(field: CloudAsrCredentialField): void; isCredentialClearPending(field: CloudAsrCredentialField): boolean; credentialClears(): ReadonlySet; isDirty(): boolean; hasInvalidDrafts(): boolean; hasPersistableDrafts(): boolean; buildSubmission(): SettingsSubmission; reconcile(submission: SettingsSubmission): void; reset(): void; isCredentialField(field: FieldName): field is CloudAsrCredentialField; }