import { BaseEmbed } from "./base-embed"; import { type EmbedCallbacks, type EmbedSyncConfiguration, type EmbedTimeoutConfiguration } from "./embed-configuration"; import type { Environment } from "./environment"; import type { Styles } from "./styles"; export type PinSettingEmbedConfiguration = EmbedCallbacks & EmbedSyncConfiguration & EmbedTimeoutConfiguration; export declare class PinSettingEmbed extends BaseEmbed { readonly configuration: PinSettingEmbedConfiguration; private submissionPromise?; private submissionSucceeded; constructor(sessionToken: string, environment: Environment, apiUrl: string, configuration: PinSettingEmbedConfiguration); /** * @throws `EmbedMountError` If the iframe does not render before the SDK * timeout. */ mount(target: Element | string, styles?: Styles): Promise; unmount(): Promise; /** * Submits the PIN currently entered in the mounted PIN-setting iframe. * * If the PIN-setting iframe is not mounted or the submission wait is * aborted, the operation resolves without an error. * Concurrent calls share one in-flight submission. After an SDK timeout, * retries return the same rejection until the iframe reports its terminal * status or the embed is unmounted. * * @returns A `Promise` that resolves after a successful submission * response or when the operation is aborted. * @throws `PinSubmissionError` If the PIN-setting iframe reports a failed * submission or does not respond before the SDK timeout. */ submit(): Promise; private submitPin; private drainTimedOutSubmission; }