type InputOtpValueChangeReason = "none" | "input-change" | "keyboard" | "paste" | "delete" | "imperative-action"; type InputOtpValueChangeDetails = { readonly event?: Event; readonly inputOtpId: string; readonly isCanceled: boolean; readonly isPropagationAllowed: boolean; readonly previousValue: string; readonly reason: InputOtpValueChangeReason; readonly trigger?: Element; readonly value: string; allowPropagation(): void; cancel(): void; }; type InputOtpOptions = { defaultValue?: string; disabled?: boolean; form?: string; id?: string; maxLength?: number; name?: string; onValueChange?: (value: string, details: InputOtpValueChangeDetails) => void; pattern?: RegExp | string; readOnly?: boolean; required?: boolean; value?: string; }; type InputOtpSetValueOptions = { emit?: boolean; event?: Event; reason?: InputOtpValueChangeReason; trigger?: Element; }; type InputOtpInstance = { readonly root: HTMLElement; destroy(): void; getValue(): string; refresh(): void; setDisabled(disabled: boolean): void; setFormOptions(options: Pick): void; setValue(value: string, options?: InputOtpSetValueOptions): void; subscribe(event: "valueChange", callback: (details: InputOtpValueChangeDetails) => void): () => void; }; declare function createInputOtp(root: HTMLElement, options?: InputOtpOptions): InputOtpInstance; export { type InputOtpInstance, type InputOtpOptions, type InputOtpSetValueOptions, type InputOtpValueChangeDetails, type InputOtpValueChangeReason, createInputOtp };