Skip to content

Latest commit

 

History

History
1818 lines (1659 loc) · 54 KB

File metadata and controls

1818 lines (1659 loc) · 54 KB

API Report File for "@forgerock/davinci-client"

Do not edit this file. It is a report generated by API Extractor.

import { ActionCreatorWithPayload } from '@reduxjs/toolkit';
import { ActionTypes } from '@forgerock/sdk-request-middleware';
import type { AsyncLegacyConfigOptions } from '@forgerock/sdk-types';
import { BaseQueryFn } from '@reduxjs/toolkit/query';
import { CustomLogger } from '@forgerock/sdk-logger';
import { FetchArgs } from '@reduxjs/toolkit/query';
import { FetchBaseQueryError } from '@reduxjs/toolkit/query';
import { FetchBaseQueryMeta } from '@reduxjs/toolkit/query';
import { GenericError } from '@forgerock/sdk-types';
import { LogLevel } from '@forgerock/sdk-logger';
import { MutationDefinition } from '@reduxjs/toolkit/query';
import type { MutationResultSelectorResult } from '@reduxjs/toolkit/query';
import { QueryDefinition } from '@reduxjs/toolkit/query';
import { QueryStatus } from '@reduxjs/toolkit/query';
import { Reducer } from '@reduxjs/toolkit';
import { RequestMiddleware } from '@forgerock/sdk-request-middleware';
import { RootState } from '@reduxjs/toolkit/query';
import { SerializedError } from '@reduxjs/toolkit';
import { Unsubscribe } from '@reduxjs/toolkit';

// @public (undocumented)
export type ActionCollector<T extends ActionCollectorTypes> = ActionCollectorNoUrl<T> | ActionCollectorWithUrl<T>;

// @public (undocumented)
export interface ActionCollectorNoUrl<T extends ActionCollectorTypes> {
    // (undocumented)
    category: 'ActionCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type ActionCollectors = ActionCollectorWithUrl<'IdpCollector'> | ActionCollectorNoUrl<'ActionCollector'> | ActionCollectorNoUrl<'FlowCollector'> | ActionCollectorNoUrl<'SubmitCollector'>;

// @public
export type ActionCollectorTypes = 'FlowCollector' | 'SubmitCollector' | 'IdpCollector' | 'ActionCollector';

// @public (undocumented)
export interface ActionCollectorWithUrl<T extends ActionCollectorTypes> {
    // (undocumented)
    category: 'ActionCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        url?: string | null;
    };
    // (undocumented)
    type: T;
}

export { ActionTypes }

// @public (undocumented)
export interface AgreementCollector extends NoValueCollectorBase<'AgreementCollector'> {
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        titleEnabled: boolean;
        title: string;
        agreement: {
            id: string;
            useDynamicAgreement: boolean;
        };
        enabled: boolean;
    };
}

// @public (undocumented)
export type AgreementField = {
    type: 'AGREEMENT';
    key: string;
    content: string;
    titleEnabled: boolean;
    title: string;
    agreement: {
        id: string;
        useDynamicAgreement: boolean;
    };
    enabled: boolean;
};

// @public (undocumented)
export interface AssertionValue extends Omit<PublicKeyCredential, 'rawId' | 'response' | 'getClientExtensionResults' | 'toJSON'> {
    // (undocumented)
    rawId: string;
    // (undocumented)
    response: {
        clientDataJSON: string;
        authenticatorData: string;
        signature: string;
        userHandle: string | null;
    };
}

// @public (undocumented)
export interface AttestationValue extends Omit<PublicKeyCredential, 'rawId' | 'response' | 'getClientExtensionResults' | 'toJSON'> {
    // (undocumented)
    rawId: string;
    // (undocumented)
    response: {
        clientDataJSON: string;
        attestationObject: string;
    };
}

// @public (undocumented)
export interface AutoCollector<C extends AutoCollectorCategories, T extends AutoCollectorTypes, IV = string, OV = Record<string, unknown>> {
    // (undocumented)
    category: C;
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: IV;
        type: string;
        validation?: ValidationRequired[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        type: string;
        config: OV;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type AutoCollectorCategories = 'SingleValueAutoCollector' | 'ObjectValueAutoCollector';

// @public (undocumented)
export type AutoCollectors = ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | SingleValueAutoCollector | ObjectValueAutoCollector;

// @public (undocumented)
export type AutoCollectorTypes = SingleValueAutoCollectorTypes | ObjectValueAutoCollectorTypes;

// @public (undocumented)
export interface CollectorErrors {
    // (undocumented)
    code: string;
    // (undocumented)
    message: string;
    // (undocumented)
    target: string;
}

// @public (undocumented)
export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ReadOnlyCollector | ValidatedTextCollector | ProtectCollector | PollingCollector | FidoRegistrationCollector | FidoAuthenticationCollector | QrCodeCollector | AgreementCollector | UnknownCollector;

// @public
export type CollectorValueType<T> = T extends {
    type: 'PasswordCollector';
} ? string : T extends {
    type: 'TextCollector';
    category: 'SingleValueCollector';
} ? string : T extends {
    type: 'TextCollector';
    category: 'ValidatedSingleValueCollector';
} ? string : T extends {
    type: 'SingleSelectCollector';
} ? string : T extends {
    type: 'MultiSelectCollector';
} ? string[] : T extends {
    type: 'DeviceRegistrationCollector';
} ? string : T extends {
    type: 'DeviceAuthenticationCollector';
} ? string : T extends {
    type: 'PhoneNumberCollector';
} ? PhoneNumberInputValue : T extends {
    type: 'FidoRegistrationCollector';
} ? FidoRegistrationInputValue : T extends {
    type: 'FidoAuthenticationCollector';
} ? FidoAuthenticationInputValue : T extends {
    category: 'SingleValueCollector';
} ? string : T extends {
    category: 'ValidatedSingleValueCollector';
} ? string : T extends {
    category: 'MultiValueCollector';
} ? string[] : string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;

// @public (undocumented)
export type ComplexValueFields = DeviceAuthenticationField | DeviceRegistrationField | PhoneNumberField | FidoRegistrationField | FidoAuthenticationField | PollingField;

// @public (undocumented)
export interface ContinueNode {
    // (undocumented)
    cache: {
        key: string;
    };
    // (undocumented)
    client: {
        action: string;
        collectors: Collectors[];
        description?: string;
        name?: string;
        status: 'continue';
    };
    // (undocumented)
    error: null;
    // (undocumented)
    httpStatus: number;
    // (undocumented)
    server: {
        _links?: Links;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        href?: string;
        eventName?: string;
        status: 'continue';
    };
    // (undocumented)
    status: 'continue';
}

export { CustomLogger }

// @public
export type CustomPollingStatus = string & {};

// @public
export function davinci<ActionType extends ActionTypes = ActionTypes>(input: {
    config: DaVinciConfig;
    requestMiddleware?: RequestMiddleware<ActionType>[];
    logger?: {
        level: LogLevel;
        custom?: CustomLogger;
    };
}): Promise<{
    subscribe: (listener: () => void) => Unsubscribe;
    externalIdp: () => (() => Promise<void | InternalErrorResponse>);
    flow: (action: DaVinciAction) => InitFlow;
    next: (args?: DaVinciRequest) => Promise<NodeStates>;
    resume: (input: {
        continueToken: string;
    }) => Promise<InternalErrorResponse | NodeStates>;
    start: <QueryParams extends OutgoingQueryParams = OutgoingQueryParams>(options?: StartOptions<QueryParams> | undefined) => Promise<ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode>;
    update: <T extends SingleValueCollectors | MultiSelectCollector | ObjectValueCollectors | AutoCollectors>(collector: T) => Updater<T>;
    validate: (collector: SingleValueCollectors | ObjectValueCollectors | MultiValueCollectors | AutoCollectors) => Validator;
    pollStatus: (collector: PollingCollector) => Poller;
    getClient: () => {
        action: string;
        collectors: Collectors[];
        description?: string;
        name?: string;
        status: "continue";
    } | {
        action: string;
        collectors: Collectors[];
        description?: string;
        name?: string;
        status: "error";
    } | {
        status: "failure";
    } | {
        status: "start";
    } | {
        authorization?: {
            code?: string;
            state?: string;
        };
        status: "success";
    } | null;
    getCollectors: () => Collectors[];
    getError: () => DaVinciError | null;
    getErrorCollectors: () => CollectorErrors[];
    getNode: () => ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode;
    getServer: () => {
        _links?: Links;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        href?: string;
        eventName?: string;
        status: "continue";
    } | {
        _links?: Links;
        eventName?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        status: "error";
    } | {
        _links?: Links;
        eventName?: string;
        href?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        status: "failure";
    } | {
        status: "start";
    } | {
        _links?: Links;
        eventName?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        href?: string;
        session?: string;
        status: "success";
    } | null;
    cache: {
        getLatestResponse: () => ((state: RootState<    {
        flow: MutationDefinition<any, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
        next: MutationDefinition<any, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
        start: MutationDefinition<StartOptions<OutgoingQueryParams> | undefined, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        resume: QueryDefinition<    {
        serverInfo: ContinueNode["server"];
        continueToken: string;
        }, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        poll: MutationDefinition<    {
        endpoint: string;
        interactionId: string;
        }, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        }, never, "davinci">) => ({
            requestId?: undefined;
            status: QueryStatus.uninitialized;
            data?: undefined;
            error?: undefined;
            endpointName?: string;
            startedTimeStamp?: undefined;
            fulfilledTimeStamp?: undefined;
        } & {
            status: QueryStatus.uninitialized;
            isUninitialized: true;
            isLoading: false;
            isSuccess: false;
            isError: false;
        }) | ({
            status: QueryStatus.fulfilled;
        } & Omit<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "data" | "fulfilledTimeStamp"> & Required<Pick<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "data" | "fulfilledTimeStamp">> & {
            error: undefined;
        } & {
            status: QueryStatus.fulfilled;
            isUninitialized: false;
            isLoading: false;
            isSuccess: true;
            isError: false;
        }) | ({
            status: QueryStatus.pending;
        } & {
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        } & {
            data?: undefined;
        } & {
            status: QueryStatus.pending;
            isUninitialized: false;
            isLoading: true;
            isSuccess: false;
            isError: false;
        }) | ({
            status: QueryStatus.rejected;
        } & Omit<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "error"> & Required<Pick<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "error">> & {
            status: QueryStatus.rejected;
            isUninitialized: false;
            isLoading: false;
            isSuccess: false;
            isError: true;
        })) | {
            error: {
                message: string;
                type: string;
            };
        };
        getResponseWithId: (requestId: string) => ((state: RootState<    {
        flow: MutationDefinition<any, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
        next: MutationDefinition<any, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
        start: MutationDefinition<StartOptions<OutgoingQueryParams> | undefined, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        resume: QueryDefinition<    {
        serverInfo: ContinueNode["server"];
        continueToken: string;
        }, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        poll: MutationDefinition<    {
        endpoint: string;
        interactionId: string;
        }, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
        }, never, "davinci">) => ({
            requestId?: undefined;
            status: QueryStatus.uninitialized;
            data?: undefined;
            error?: undefined;
            endpointName?: string;
            startedTimeStamp?: undefined;
            fulfilledTimeStamp?: undefined;
        } & {
            status: QueryStatus.uninitialized;
            isUninitialized: true;
            isLoading: false;
            isSuccess: false;
            isError: false;
        }) | ({
            status: QueryStatus.fulfilled;
        } & Omit<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "data" | "fulfilledTimeStamp"> & Required<Pick<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "data" | "fulfilledTimeStamp">> & {
            error: undefined;
        } & {
            status: QueryStatus.fulfilled;
            isUninitialized: false;
            isLoading: false;
            isSuccess: true;
            isError: false;
        }) | ({
            status: QueryStatus.pending;
        } & {
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        } & {
            data?: undefined;
        } & {
            status: QueryStatus.pending;
            isUninitialized: false;
            isLoading: true;
            isSuccess: false;
            isError: false;
        }) | ({
            status: QueryStatus.rejected;
        } & Omit<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "error"> & Required<Pick<{
            requestId: string;
            data?: unknown;
            error?: FetchBaseQueryError | SerializedError | undefined;
            endpointName: string;
            startedTimeStamp: number;
            fulfilledTimeStamp?: number;
        }, "error">> & {
            status: QueryStatus.rejected;
            isUninitialized: false;
            isLoading: false;
            isSuccess: false;
            isError: true;
        })) | {
            error: {
                message: string;
                type: string;
            };
        };
    };
}>;

// @public
export interface DaVinciAction {
    // (undocumented)
    action: string;
}

// @public
export interface DaVinciBaseResponse {
    // (undocumented)
    capabilityName?: string;
    // (undocumented)
    companyId?: string;
    // (undocumented)
    connectionId?: string;
    // (undocumented)
    connectorId?: string;
    // (undocumented)
    id?: string;
    // (undocumented)
    interactionId?: string;
    // (undocumented)
    interactionToken?: string;
    // (undocumented)
    isResponseCompatibleWithMobileAndWebSdks?: boolean;
    // (undocumented)
    status?: string;
}

// @public
export type DaVinciCacheEntry = {
    data?: DaVinciBaseResponse;
    error?: {
        data: DaVinciBaseResponse;
        status: number;
    };
} & {
    data?: any;
    error?: any;
} & MutationResultSelectorResult<any>;

// @public (undocumented)
export type DavinciClient = Awaited<ReturnType<typeof davinci>>;

// @public (undocumented)
export interface DaVinciConfig extends AsyncLegacyConfigOptions {
    // (undocumented)
    responseType?: string;
}

// @public (undocumented)
export interface DaVinciError extends Omit<GenericError, 'error'> {
    // (undocumented)
    collectors?: CollectorErrors[];
    // (undocumented)
    internalHttpStatus?: number;
    // (undocumented)
    message: string;
    // (undocumented)
    status: 'error' | 'failure' | 'unknown';
}

// @public (undocumented)
export interface DaVinciErrorCacheEntry<T> {
    // (undocumented)
    endpointName: 'next' | 'flow' | 'start';
    // (undocumented)
    error: {
        data: T;
    };
    // (undocumented)
    fulfilledTimeStamp: number;
    // (undocumented)
    isError: boolean;
    // (undocumented)
    isLoading: boolean;
    // (undocumented)
    isSuccess: boolean;
    // (undocumented)
    isUninitialized: boolean;
    // (undocumented)
    requestId: string;
    // (undocumented)
    startedTimeStamp: number;
    // (undocumented)
    status: 'fulfilled' | 'pending' | 'rejected';
}

// @public (undocumented)
export interface DavinciErrorResponse extends DaVinciBaseResponse {
    // (undocumented)
    cause?: string | null;
    // (undocumented)
    code: string | number;
    // (undocumented)
    details?: ErrorDetail[];
    // (undocumented)
    doNotSendToOE?: boolean;
    // (undocumented)
    error?: {
        code?: string;
        message?: string;
    };
    // (undocumented)
    errorCategory?: string;
    // (undocumented)
    errorMessage?: string;
    // (undocumented)
    expected?: boolean;
    // (undocumented)
    httpResponseCode: number;
    // (undocumented)
    isErrorCustomized?: boolean;
    // (undocumented)
    message: string;
    // (undocumented)
    metricAttributes?: {
        [key: string]: unknown;
    };
}

// @public (undocumented)
export interface DaVinciFailureResponse extends DaVinciBaseResponse {
    // (undocumented)
    error?: {
        code?: string;
        message?: string;
        [key: string]: unknown;
    };
}

// @public (undocumented)
export type DaVinciField = ComplexValueFields | MultiValueFields | ReadOnlyFields | RedirectFields | SingleValueFields;

// @public
export interface DaVinciNextResponse extends DaVinciBaseResponse {
    // (undocumented)
    eventName?: string;
    // (undocumented)
    form?: {
        name?: string;
        description?: string;
        components?: {
            fields?: DaVinciField[];
        };
    };
    // (undocumented)
    formData?: {
        value?: {
            [key: string]: string;
        };
    };
    // (undocumented)
    _links?: Links;
}

// @public
export interface DaVinciPollResponse extends DaVinciBaseResponse {
    // (undocumented)
    eventName?: string;
    // (undocumented)
    _links?: Links;
    // (undocumented)
    success?: boolean;
}

// @public (undocumented)
export interface DaVinciRequest {
    // (undocumented)
    eventName: string;
    // (undocumented)
    id: string;
    // (undocumented)
    interactionId: string;
    // (undocumented)
    parameters: {
        eventType: 'submit' | 'action' | 'polling';
        data: {
            actionKey: string;
            formData?: Record<string, unknown>;
        };
    };
}

// @public (undocumented)
export interface DaVinciSuccessResponse extends DaVinciBaseResponse {
    // (undocumented)
    authorizeResponse?: OAuthDetails;
    // (undocumented)
    environment: {
        id: string;
        [key: string]: unknown;
    };
    // (undocumented)
    _links?: Links;
    // (undocumented)
    resetCookie?: boolean;
    // (undocumented)
    session?: {
        id?: string;
        [key: string]: unknown;
    };
    // (undocumented)
    sessionToken?: string;
    // (undocumented)
    sessionTokenMaxAge?: number;
    // (undocumented)
    status: string;
    // (undocumented)
    subFlowSettings?: {
        cssLinks?: unknown[];
        cssUrl?: unknown;
        jsLinks?: unknown[];
        loadingScreenSettings?: unknown;
        reactSkUrl?: unknown;
    };
    // (undocumented)
    success: true;
}

// @public (undocumented)
export type DeviceAuthenticationCollector = ObjectOptionsCollectorWithObjectValue<'DeviceAuthenticationCollector', DeviceValue>;

// @public (undocumented)
export type DeviceAuthenticationField = {
    type: 'DEVICE_AUTHENTICATION';
    key: string;
    label: string;
    options: {
        type: string;
        iconSrc: string;
        title: string;
        id: string;
        default: boolean;
        description: string;
    }[];
    required: boolean;
};

// @public (undocumented)
export interface DeviceOptionNoDefault {
    // (undocumented)
    content: string;
    // (undocumented)
    key: string;
    // (undocumented)
    label: string;
    // (undocumented)
    type: string;
    // (undocumented)
    value: string;
}

// @public (undocumented)
export interface DeviceOptionWithDefault {
    // (undocumented)
    content: string;
    // (undocumented)
    default: boolean;
    // (undocumented)
    key: string;
    // (undocumented)
    label: string;
    // (undocumented)
    type: string;
    // (undocumented)
    value: string;
}

// @public (undocumented)
export type DeviceRegistrationCollector = ObjectOptionsCollectorWithStringValue<'DeviceRegistrationCollector', string>;

// @public (undocumented)
export type DeviceRegistrationField = {
    type: 'DEVICE_REGISTRATION';
    key: string;
    label: string;
    options: {
        type: string;
        iconSrc: string;
        title: string;
        description: string;
    }[];
    required: boolean;
};

// @public (undocumented)
export interface DeviceValue {
    // (undocumented)
    id: string;
    // (undocumented)
    type: string;
    // (undocumented)
    value: string;
}

// @public (undocumented)
export interface ErrorDetail {
    // (undocumented)
    message?: string;
    // (undocumented)
    rawResponse?: {
        _embedded?: {
            users?: Array<unknown>;
        };
        code?: string;
        count?: number;
        details?: NestedErrorDetails[];
        id?: string;
        message?: string;
        size?: number;
        userFilter?: string;
        [key: string]: unknown;
    };
    // (undocumented)
    statusCode?: number;
}

// @public (undocumented)
export interface ErrorNode {
    // (undocumented)
    cache: {
        key: string;
    };
    // (undocumented)
    client: {
        action: string;
        collectors: Collectors[];
        description?: string;
        name?: string;
        status: 'error';
    };
    // (undocumented)
    error: DaVinciError;
    // (undocumented)
    httpStatus: number;
    // (undocumented)
    server: {
        _links?: Links;
        eventName?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        status: 'error';
    } | null;
    // (undocumented)
    status: 'error';
}

// @public (undocumented)
export interface FailureNode {
    // (undocumented)
    cache: {
        key: string;
    };
    // (undocumented)
    client: {
        status: 'failure';
    };
    // (undocumented)
    error: DaVinciError;
    // (undocumented)
    httpStatus: number;
    // (undocumented)
    server: {
        _links?: Links;
        eventName?: string;
        href?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        status: 'failure';
    } | null;
    // (undocumented)
    status: 'failure';
}

// @public
export function fido(): FidoClient;

// @public (undocumented)
export type FidoAuthenticationCollector = AutoCollector<'ObjectValueAutoCollector', 'FidoAuthenticationCollector', FidoAuthenticationInputValue, FidoAuthenticationOutputValue>;

// @public (undocumented)
export type FidoAuthenticationField = {
    type: 'FIDO2';
    key: string;
    label: string;
    publicKeyCredentialRequestOptions: FidoAuthenticationOptions;
    action: 'AUTHENTICATE';
    trigger: string;
    required: boolean;
};

// @public (undocumented)
export interface FidoAuthenticationInputValue {
    // (undocumented)
    assertionValue?: AssertionValue;
}

// @public (undocumented)
export interface FidoAuthenticationOptions extends Omit<PublicKeyCredentialRequestOptions, 'challenge' | 'allowCredentials'> {
    // (undocumented)
    allowCredentials?: {
        id: number[];
        transports?: AuthenticatorTransport[];
        type: PublicKeyCredentialType;
    }[];
    // (undocumented)
    challenge: number[];
}

// @public (undocumented)
export interface FidoAuthenticationOutputValue {
    // (undocumented)
    action: 'AUTHENTICATE';
    // (undocumented)
    publicKeyCredentialRequestOptions: FidoAuthenticationOptions;
    // (undocumented)
    trigger: string;
}

// @public (undocumented)
export interface FidoClient {
    authenticate: (options: FidoAuthenticationOptions) => Promise<FidoAuthenticationInputValue | GenericError>;
    register: (options: FidoRegistrationOptions) => Promise<FidoRegistrationInputValue | GenericError>;
}

// @public (undocumented)
export type FidoRegistrationCollector = AutoCollector<'ObjectValueAutoCollector', 'FidoRegistrationCollector', FidoRegistrationInputValue, FidoRegistrationOutputValue>;

// @public (undocumented)
export type FidoRegistrationField = {
    type: 'FIDO2';
    key: string;
    label: string;
    publicKeyCredentialCreationOptions: FidoRegistrationOptions;
    action: 'REGISTER';
    trigger: string;
    required: boolean;
};

// @public (undocumented)
export interface FidoRegistrationInputValue {
    // (undocumented)
    attestationValue?: AttestationValue;
}

// @public (undocumented)
export interface FidoRegistrationOptions extends Omit<PublicKeyCredentialCreationOptions, 'challenge' | 'user' | 'pubKeyCredParams' | 'excludeCredentials'> {
    // (undocumented)
    challenge: number[];
    // (undocumented)
    excludeCredentials?: {
        id: number[];
        transports?: AuthenticatorTransport[];
        type: PublicKeyCredentialType;
    }[];
    // (undocumented)
    pubKeyCredParams: {
        alg: string | number;
        type: PublicKeyCredentialType;
    }[];
    // (undocumented)
    user: {
        id: number[];
        name: string;
        displayName: string;
    };
}

// @public (undocumented)
export interface FidoRegistrationOutputValue {
    // (undocumented)
    action: 'REGISTER';
    // (undocumented)
    publicKeyCredentialCreationOptions: FidoRegistrationOptions;
    // (undocumented)
    trigger: string;
}

// @public (undocumented)
export type FlowCollector = ActionCollectorNoUrl<'FlowCollector'>;

// @public (undocumented)
export type FlowNode = ContinueNode | ErrorNode | StartNode | SuccessNode | FailureNode;

// @public
export type GetClient = StartNode['client'] | ContinueNode['client'] | ErrorNode['client'] | SuccessNode['client'] | FailureNode['client'];

// @public (undocumented)
export type IdpCollector = ActionCollectorWithUrl<'IdpCollector'>;

// @public (undocumented)
export type InferActionCollectorType<T extends ActionCollectorTypes> = T extends 'IdpCollector' ? IdpCollector : T extends 'SubmitCollector' ? SubmitCollector : T extends 'FlowCollector' ? FlowCollector : ActionCollectorWithUrl<'ActionCollector'> | ActionCollectorNoUrl<'ActionCollector'>;

// @public
export type InferAutoCollectorType<T extends AutoCollectorTypes> = T extends 'ProtectCollector' ? ProtectCollector : T extends 'PollingCollector' ? PollingCollector : T extends 'FidoRegistrationCollector' ? FidoRegistrationCollector : T extends 'FidoAuthenticationCollector' ? FidoAuthenticationCollector : T extends 'ObjectValueAutoCollector' ? ObjectValueAutoCollector : SingleValueAutoCollector;

// @public
export type InferMultiValueCollectorType<T extends MultiValueCollectorTypes> = T extends 'MultiSelectCollector' ? MultiValueCollectorWithValue<'MultiSelectCollector'> : MultiValueCollectorWithValue<'MultiValueCollector'> | MultiValueCollectorNoValue<'MultiValueCollector'>;

// @public
export type InferNoValueCollectorType<T extends NoValueCollectorTypes> = T extends 'ReadOnlyCollector' ? NoValueCollectorBase<'ReadOnlyCollector'> : T extends 'QrCodeCollector' ? QrCodeCollectorBase : T extends 'AgreementCollector' ? AgreementCollector : NoValueCollectorBase<'NoValueCollector'>;

// @public
export type InferSingleValueCollectorType<T extends SingleValueCollectorTypes> = T extends 'TextCollector' ? TextCollector : T extends 'SingleSelectCollector' ? SingleSelectCollector : T extends 'ValidatedTextCollector' ? ValidatedTextCollector : T extends 'PasswordCollector' ? PasswordCollector : SingleValueCollectorWithValue<'SingleValueCollector'> | SingleValueCollectorNoValue<'SingleValueCollector'>;

// @public (undocumented)
export type InferValueObjectCollectorType<T extends ObjectValueCollectorTypes> = T extends 'DeviceAuthenticationCollector' ? DeviceAuthenticationCollector : T extends 'DeviceRegistrationCollector' ? DeviceRegistrationCollector : T extends 'PhoneNumberCollector' ? PhoneNumberCollector : ObjectOptionsCollectorWithObjectValue<'ObjectValueCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectValueCollector'>;

// @public (undocumented)
export type InitFlow = () => Promise<FlowNode | InternalErrorResponse>;

// @public (undocumented)
export interface InternalErrorResponse {
    // (undocumented)
    error: Omit<GenericError, 'error'> & {
        message: string;
    };
    // (undocumented)
    type: 'internal_error';
}

// @public (undocumented)
export interface Links {
    // (undocumented)
    [key: string]: {
        href?: string;
    };
}

export { LogLevel }

// @public (undocumented)
export type MultiSelectCollector = MultiValueCollectorWithValue<'MultiSelectCollector'>;

// @public (undocumented)
export type MultiSelectField = {
    inputType: 'MULTI_SELECT';
    key: string;
    label: string;
    options: {
        label: string;
        value: string;
    }[];
    required?: boolean;
    type: 'CHECKBOX' | 'COMBOBOX';
};

// @public (undocumented)
export type MultiValueCollector<T extends MultiValueCollectorTypes> = MultiValueCollectorWithValue<T> | MultiValueCollectorNoValue<T>;

// @public (undocumented)
export interface MultiValueCollectorNoValue<T extends MultiValueCollectorTypes> {
    // (undocumented)
    category: 'MultiValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string[];
        type: string;
        validation: ValidationRequired[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        options: SelectorOption[];
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type MultiValueCollectors = MultiValueCollectorWithValue<'MultiValueCollector'> | MultiValueCollectorWithValue<'MultiSelectCollector'>;

// @public
export type MultiValueCollectorTypes = 'MultiSelectCollector' | 'MultiValueCollector';

// @public (undocumented)
export interface MultiValueCollectorWithValue<T extends MultiValueCollectorTypes> {
    // (undocumented)
    category: 'MultiValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string[];
        type: string;
        validation: ValidationRequired[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        value: string[];
        options: SelectorOption[];
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type MultiValueFields = MultiSelectField;

// @public
export interface NestedErrorDetails {
    // (undocumented)
    code?: string;
    // (undocumented)
    innerError?: {
        history?: string;
        unsatisfiedRequirements?: string[];
        failuresRemaining?: number;
    };
    // (undocumented)
    message?: string;
    // (undocumented)
    target?: string;
}

// @public
export const nextCollectorValues: ActionCreatorWithPayload<    {
fields: DaVinciField[];
formData: {
value: Record<string, unknown>;
};
}, string>;

// @public
export const nodeCollectorReducer: Reducer<(TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[]> & {
    getInitialState: () => (TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[];
};

// @public (undocumented)
export type NodeStates = StartNode | ContinueNode | ErrorNode | SuccessNode | FailureNode;

// @public (undocumented)
export type NoValueCollector<T extends NoValueCollectorTypes> = NoValueCollectorBase<T>;

// @public (undocumented)
export interface NoValueCollectorBase<T extends NoValueCollectorTypes> {
    // (undocumented)
    category: 'NoValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type NoValueCollectors = NoValueCollectorBase<'NoValueCollector'> | NoValueCollectorBase<'ReadOnlyCollector'> | QrCodeCollectorBase | AgreementCollector;

// @public
export type NoValueCollectorTypes = 'ReadOnlyCollector' | 'NoValueCollector' | 'QrCodeCollector' | 'AgreementCollector';

// @public
export interface OAuthDetails {
    // (undocumented)
    [key: string]: unknown;
    // (undocumented)
    code?: string;
    // (undocumented)
    state?: string;
}

// @public (undocumented)
export interface ObjectOptionsCollectorWithObjectValue<T extends ObjectValueCollectorTypes, V = Record<string, string>, D = Record<string, string>> {
    // (undocumented)
    category: 'ObjectValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: V;
        type: string;
        validation: ValidationRequired[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        options: DeviceOptionWithDefault[];
        value?: D | null;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export interface ObjectOptionsCollectorWithStringValue<T extends ObjectValueCollectorTypes, V = string> {
    // (undocumented)
    category: 'ObjectValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: V;
        type: string;
        validation: ValidationRequired[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        options: DeviceOptionNoDefault[];
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type ObjectValueAutoCollector = AutoCollector<'ObjectValueAutoCollector', 'ObjectValueAutoCollector', Record<string, unknown>>;

// @public (undocumented)
export type ObjectValueAutoCollectorTypes = 'ObjectValueAutoCollector' | 'FidoRegistrationCollector' | 'FidoAuthenticationCollector';

// @public (undocumented)
export type ObjectValueCollector<T extends ObjectValueCollectorTypes> = ObjectOptionsCollectorWithObjectValue<T> | ObjectOptionsCollectorWithStringValue<T> | ObjectValueCollectorWithObjectValue<T>;

// @public (undocumented)
export type ObjectValueCollectors = DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ObjectOptionsCollectorWithObjectValue<'ObjectSelectCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectSelectCollector'>;

// @public
export type ObjectValueCollectorTypes = 'DeviceAuthenticationCollector' | 'DeviceRegistrationCollector' | 'PhoneNumberCollector' | 'ObjectOptionsCollector' | 'ObjectValueCollector' | 'ObjectSelectCollector';

// @public (undocumented)
export interface ObjectValueCollectorWithObjectValue<T extends ObjectValueCollectorTypes, IV = Record<string, string>, OV = Record<string, string>> {
    // (undocumented)
    category: 'ObjectValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: IV;
        type: string;
        validation: (ValidationRequired | ValidationPhoneNumber)[] | null;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        value?: OV | null;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export interface OutgoingQueryParams {
    // (undocumented)
    [key: string]: string | string[];
}

// @public (undocumented)
export type PasswordCollector = SingleValueCollectorNoValue<'PasswordCollector'>;

// @public (undocumented)
export type PhoneNumberCollector = ObjectValueCollectorWithObjectValue<'PhoneNumberCollector', PhoneNumberInputValue, PhoneNumberOutputValue>;

// @public (undocumented)
export type PhoneNumberField = {
    type: 'PHONE_NUMBER';
    key: string;
    label: string;
    defaultCountryCode: string | null;
    required: boolean;
    validatePhoneNumber: boolean;
};

// @public (undocumented)
export interface PhoneNumberInputValue {
    // (undocumented)
    countryCode: string;
    // (undocumented)
    phoneNumber: string;
}

// @public (undocumented)
export interface PhoneNumberOutputValue {
    // (undocumented)
    countryCode?: string;
    // (undocumented)
    phoneNumber?: string;
}

// @public (undocumented)
export type Poller = () => Promise<PollingStatus | InternalErrorResponse>;

// @public (undocumented)
export type PollingCollector = AutoCollector<'SingleValueAutoCollector', 'PollingCollector', string, PollingOutputValue>;

// @public (undocumented)
export type PollingField = {
    type: 'POLLING';
    key: string;
    pollInterval: number;
    pollRetries: number;
    pollChallengeStatus?: boolean;
    challenge?: string;
};

// @public (undocumented)
export interface PollingOutputValue {
    // (undocumented)
    challenge?: string;
    // (undocumented)
    pollChallengeStatus?: boolean;
    // (undocumented)
    pollInterval: number;
    // (undocumented)
    pollRetries: number;
    // (undocumented)
    retriesRemaining?: number;
}

// @public (undocumented)
export type PollingStatus = PollingStatusContinue | PollingStatusChallenge;

// @public (undocumented)
export type PollingStatusChallenge = PollingStatusChallengeComplete | 'expired' | 'timedOut' | 'error';

// @public (undocumented)
export type PollingStatusChallengeComplete = 'approved' | 'denied' | 'continue' | CustomPollingStatus;

// @public (undocumented)
export type PollingStatusContinue = 'continue' | 'timedOut';

// @public (undocumented)
export type ProtectCollector = AutoCollector<'SingleValueAutoCollector', 'ProtectCollector', string, ProtectOutputValue>;

// @public (undocumented)
export type ProtectField = {
    type: 'PROTECT';
    key: string;
    behavioralDataCollection: boolean;
    universalDeviceIdentification: boolean;
};

// @public
export interface ProtectOutputValue {
    // (undocumented)
    behavioralDataCollection: boolean;
    // (undocumented)
    universalDeviceIdentification: boolean;
}

// @public (undocumented)
export type QrCodeCollector = QrCodeCollectorBase;

// @public (undocumented)
export interface QrCodeCollectorBase {
    // (undocumented)
    category: 'NoValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        src: string;
    };
    // (undocumented)
    type: 'QrCodeCollector';
}

// @public (undocumented)
export type QrCodeField = {
    type: 'QR_CODE';
    key: string;
    content: string;
    fallbackText?: string;
};

// @public (undocumented)
export type ReadOnlyCollector = NoValueCollectorBase<'ReadOnlyCollector'>;

// @public (undocumented)
export type ReadOnlyField = {
    type: 'LABEL';
    content: string;
    key?: string;
};

// @public (undocumented)
export type ReadOnlyFields = ReadOnlyField | QrCodeField | AgreementField;

// @public (undocumented)
export type RedirectField = {
    type: 'SOCIAL_LOGIN_BUTTON';
    key: string;
    label: string;
    links: Links;
};

// @public (undocumented)
export type RedirectFields = RedirectField;

export { RequestMiddleware }

// @public (undocumented)
export interface SelectorOption {
    // (undocumented)
    label: string;
    // (undocumented)
    value: string;
}

// @public (undocumented)
export type SingleSelectCollector = SingleSelectCollectorWithValue<'SingleSelectCollector'>;

// @public (undocumented)
export interface SingleSelectCollectorNoValue<T extends SingleValueCollectorTypes> {
    // (undocumented)
    category: 'SingleValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string | number | boolean;
        type: string;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        options: SelectorOption[];
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export interface SingleSelectCollectorWithValue<T extends SingleValueCollectorTypes> {
    // (undocumented)
    category: 'SingleValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string | number | boolean;
        type: string;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        value: string | number | boolean;
        options: SelectorOption[];
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type SingleSelectField = {
    inputType: 'SINGLE_SELECT';
    key: string;
    label: string;
    options: {
        label: string;
        value: string;
    }[];
    required?: boolean;
    type: 'RADIO' | 'DROPDOWN';
};

// @public (undocumented)
export type SingleValueAutoCollector = AutoCollector<'SingleValueAutoCollector', 'SingleValueAutoCollector', string>;

// @public (undocumented)
export type SingleValueAutoCollectorTypes = 'SingleValueAutoCollector' | 'ProtectCollector' | 'PollingCollector';

// @public
export type SingleValueCollector<T extends SingleValueCollectorTypes> = SingleValueCollectorWithValue<T> | SingleValueCollectorNoValue<T>;

// @public (undocumented)
export interface SingleValueCollectorNoValue<T extends SingleValueCollectorTypes> {
    // (undocumented)
    category: 'SingleValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string | number | boolean;
        type: string;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type SingleValueCollectors = SingleValueCollectorNoValue<'PasswordCollector'> | SingleSelectCollectorWithValue<'SingleSelectCollector'> | SingleValueCollectorWithValue<'SingleValueCollector'> | SingleValueCollectorWithValue<'TextCollector'> | ValidatedSingleValueCollectorWithValue<'TextCollector'>;

// @public
export type SingleValueCollectorTypes = 'PasswordCollector' | 'SingleValueCollector' | 'SingleSelectCollector' | 'SingleSelectObjectCollector' | 'TextCollector' | 'ValidatedTextCollector';

// @public (undocumented)
export interface SingleValueCollectorWithValue<T extends SingleValueCollectorTypes> {
    // (undocumented)
    category: 'SingleValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string | number | boolean;
        type: string;
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        value: string | number | boolean;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type SingleValueFields = StandardField | ValidatedField | SingleSelectField | ProtectField;

// @public (undocumented)
export type StandardField = {
    type: 'PASSWORD' | 'PASSWORD_VERIFY' | 'TEXT' | 'SUBMIT_BUTTON' | 'FLOW_BUTTON' | 'FLOW_LINK' | 'BUTTON';
    key: string;
    label: string;
    required?: boolean;
};

// @public (undocumented)
export interface StartNode {
    // (undocumented)
    cache: null;
    // (undocumented)
    client: {
        status: 'start';
    };
    // (undocumented)
    error: DaVinciError | null;
    // (undocumented)
    server: {
        status: 'start';
    };
    // (undocumented)
    status: 'start';
}

// @public (undocumented)
export interface StartOptions<Query extends OutgoingQueryParams = OutgoingQueryParams> {
    // (undocumented)
    query: Query;
}

// @public (undocumented)
export type SubmitCollector = ActionCollectorNoUrl<'SubmitCollector'>;

// @public (undocumented)
export interface SuccessNode {
    // (undocumented)
    cache: {
        key: string;
    };
    // (undocumented)
    client: {
        authorization?: {
            code?: string;
            state?: string;
        };
        status: 'success';
    } | null;
    // (undocumented)
    error: null;
    // (undocumented)
    httpStatus: number;
    // (undocumented)
    server: {
        _links?: Links;
        eventName?: string;
        id?: string;
        interactionId?: string;
        interactionToken?: string;
        href?: string;
        session?: string;
        status: 'success';
    };
    // (undocumented)
    status: 'success';
}

// @public (undocumented)
export type TextCollector = SingleValueCollectorWithValue<'TextCollector'>;

// @public (undocumented)
export interface ThrownQueryError {
    // (undocumented)
    error: FetchBaseQueryError;
    // (undocumented)
    isHandledError: boolean;
    // (undocumented)
    meta: FetchBaseQueryMeta;
}

// @public
export type UnknownCollector = {
    category: 'UnknownCollector';
    error: string | null;
    type: 'UnknownCollector';
    id: string;
    name: string;
    output: {
        key: string;
        label: string;
        type: string;
    };
};

// @public (undocumented)
export type UnknownField = Record<string, unknown>;

// @public (undocumented)
export const updateCollectorValues: ActionCreatorWithPayload<    {
id: string;
value: string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
index?: number;
}, string>;

// @public
export type Updater<T = unknown> = (value: CollectorValueType<T>, index?: number) => InternalErrorResponse | null;

// @public (undocumented)
export type ValidatedField = {
    type: 'TEXT';
    key: string;
    label: string;
    required: boolean;
    validation: {
        regex: string;
        errorMessage: string;
    };
};

// @public (undocumented)
export interface ValidatedSingleValueCollectorWithValue<T extends SingleValueCollectorTypes> {
    // (undocumented)
    category: 'ValidatedSingleValueCollector';
    // (undocumented)
    error: string | null;
    // (undocumented)
    id: string;
    // (undocumented)
    input: {
        key: string;
        value: string | number | boolean;
        type: string;
        validation: (ValidationRequired | ValidationRegex)[];
    };
    // (undocumented)
    name: string;
    // (undocumented)
    output: {
        key: string;
        label: string;
        type: string;
        value: string | number | boolean;
    };
    // (undocumented)
    type: T;
}

// @public (undocumented)
export type ValidatedTextCollector = ValidatedSingleValueCollectorWithValue<'TextCollector'>;

// @public (undocumented)
export interface ValidationPhoneNumber {
    // (undocumented)
    message: string;
    // (undocumented)
    rule: boolean;
    // (undocumented)
    type: 'validatePhoneNumber';
}

// @public (undocumented)
export interface ValidationRegex {
    // (undocumented)
    message: string;
    // (undocumented)
    rule: string;
    // (undocumented)
    type: 'regex';
}

// @public (undocumented)
export interface ValidationRequired {
    // (undocumented)
    message: string;
    // (undocumented)
    rule: boolean;
    // (undocumented)
    type: 'required';
}

// @public (undocumented)
export type Validator = (value: string) => string[] | {
    error: {
        message: string;
        type: string;
    };
    type: string;
};

// (No @packageDocumentation comment for this package)