import type { BrokerResponseErrorDetails } from "./BrokerResponseErrorDetails";
import type { CallbackUrls } from "./CallbackUrls";
import type { MessageTransportProperties } from "./MessageTransportProperties";
import type { PaymentPrefillData } from "./PaymentPrefillData";
import type { SessionEnvironment } from "./SessionEnvironment";
import type { Subject } from "./Subject";
import type { AuthenticationProviderValue } from "./AuthenticationProviders";
/**
 * Session information to be returned to user
 */
export type SessionDataDto = {
    /**
     * Session identifier (Globally unique).
     */
    id?: string | null;
    /**
     * The specified account ID used for the session.
     */
    accountId: string;
    /**
     * The URL which you should direct your end-user to for performing the authentication.
     */
    authenticationUrl?: string | null;
    /**
     * The URL that allows to check the authentication status.
     */
    statusUrl?: string | null;
    /**
     * The current status of the session.
     */
    status?: SessionDataDto.status | null;
    /**
     * The status detail if the response is an error.
     */
    statusDetail?: string | null;
    /**
     * The IdP which was used by the end-user to authenticate.
     */
    provider?: AuthenticationProviderValue | null;
    subject?: Subject;
    callbackUrls?: CallbackUrls;
    /**
     * The idp data.
     */
    idpData?: Record<string, string> | null;
    environment?: SessionEnvironment;
    error?: BrokerResponseErrorDetails;
    messageTransportProperties?: MessageTransportProperties;
    /**
     * A set of support optional tags to group and filter webhooks.
     */
    tags?: Array<string> | null;
    paymentPrefillData?: PaymentPrefillData;
    /**
     * The Level of Assurance used in the authentication.
     */
    loa?: string | null;
    /**
     * 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>.
     */
    flow: SessionDataDto.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;
    /**
     * DateTime calculated field expiry of session.
     */
    expiresAt?: string | null;
};
export declare namespace SessionDataDto {
    /**
     * The current status of the session.
     */
    enum status {
        CREATED = "CREATED",
        SUCCESS = "SUCCESS",
        ERROR = "ERROR",
        ABORT = "ABORT",
        CANCELLED = "CANCELLED",
        WAITING_FOR_USER = "WAITING_FOR_USER",
        EXPIRED = "EXPIRED",
        INVALID = "INVALID"
    }
    /**
     * 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>.
     */
    enum flow {
        HEADLESS = "headless",
        REDIRECT = "redirect",
        EMBEDDED = "embedded"
    }
}
