import type { CallbackUrls } from "./CallbackUrls";
import type { EncryptionKey } from "./EncryptionKey";
import type { PaymentPrefillData } from "./PaymentPrefillData";
import type { PrefilledInput } from "./PrefilledInput";
import type { AuthenticationProviderValue } from "./AuthenticationProviders";
/**
 * The Session to be created.
 */
export type SessionRequestDto = {
    prefilledInput?: PrefilledInput;
    /**
     * Additional parameters that modify the authentication flow. Depends on selected IdP.
     * See <a href="https://developer.signicat.com/identity-methods/">developer documentation</a> for details.
     */
    additionalParameters?: Record<string, string> | null;
    callbackUrls?: CallbackUrls;
    encryptionPublicKey?: EncryptionKey;
    /**
     * Specifies the LoA (Level of Assurance).
     */
    requestedLoa?: SessionRequestDto.requestedLoa | null;
    /**
     * A set of support optional tags to group and filter webhooks.
     * The maximum length for each tag is 100.
     */
    tags?: Array<string> | null;
    /**
     * If specified the embedded view will return to this URL after authentication is completed (successfully or not). If not specified, a success or error screen will be shown inside the embedded view.
     */
    returnUrl?: string | null;
    /**
     * Specify the parent domains that will embed the authentication. This will be used for content security frame ancestor header if set, as an extra security mechanism to protect against clickjacking.
     */
    embeddedParentDomains?: Array<string> | null;
    paymentPrefillData?: PaymentPrefillData;
    /**
     * A list of Identity Providers (IdPs) that can be used for authentication.
     * If not specified, the end-user will be able to choose from all IdPs associated with your Signicat account.
     * The maximum length for each Provider is 30.
     *
     * @example ["nbid", "sbid", "idin"] // Norwegian BankID, Swedish BankID, iDIN
     */
    allowedProviders?: Array<AuthenticationProviderValue> | null;
    /**
     * The desired language for the UI. Expected format ISO 639-1.
     * If the requested language is not available, it will automatically default to English (en).
     * Some IdPs may have a different fallback language due to regional considerations.
     */
    language?: string | null;
    /**
     * The selected flow used for this specific authentication session.
     * To learn more about using the ```headless``` flow with Swedish BankID, please refer to <a href="/identity-methods/sbid/integration-guide/auth-rest-api/headless/">this example</a>.
     * If flow is set to Redirect the field CallbackUrls is required.
     */
    flow: SessionRequestDto.flow;
    /**
     * The themeId you want to use for this specific authentication session.
     * If not specified, the default theme for your account will be used.
     */
    themeId?: string | null;
    /**
     * The attributes you wish to get back from the authentication of the end-user.
     * To find a list of which attributes can be requested, please see documentation for that specific ID method which
     * can be found on <a href="https://developer.signicat.com/identity-methods/">https://developer.signicat.com/identity-methods/</a>.
     *
     * Defaults to empty.
     */
    requestedAttributes: Array<string>;
    /**
     * An external reference for you, will be returned as a URL parameter on callbackUrls.
     */
    externalReference?: string | null;
    /**
     * An usage external reference for you to group your billing.
     */
    usageReference?: string | null;
    /**
     * Lifetime of session in seconds (Default is 1200 seconds). It has a soft-minimum value of 300 seconds, which means if the value set is
     * less then 300, it will be automatically set to 300 seconds.
     */
    sessionLifetime?: number | null;
    /**
     * This specifies the domain you want to use for this specific session.
     * The domain will be visible in the end-user's browser.
     * This domain needs to be correctly configured on your account!
     */
    requestDomain?: string | null;
};
export declare namespace SessionRequestDto {
    /**
     * Specifies the LoA (Level of Assurance).
     */
    enum requestedLoa {
        LOW = "low",
        SUBSTANTIAL = "substantial",
        HIGH = "high"
    }
    /**
     * The selected flow used for this specific authentication session.
     * To learn more about using the ```headless``` flow with Swedish BankID, please refer to <a href="/identity-methods/sbid/integration-guide/auth-rest-api/headless/">this example</a>.
     * If flow is set to Redirect the field CallbackUrls is required.
     */
    enum flow {
        HEADLESS = "headless",
        REDIRECT = "redirect",
        EMBEDDED = "embedded"
    }
}
