/// <reference types="react" />
import CriiptoAuth, { OpenIDConfiguration, AuthorizeUrlParamsOptional, PKCE, AuthorizeResponse, OAuth2Error, PKCEPublicPart } from '@criipto/auth-js';
import { PopupAuthorizeParams, RedirectAuthorizeParams } from '@criipto/auth-js/dist/types';
export declare type ResultSource = 'QRCode' | 'SEBankIDQrCode' | 'SEBankIDSameDeviceButton' | 'redirect';
export declare type Result = {
    id_token: string;
    state?: string;
    source?: ResultSource;
} | {
    code: string;
    state?: string;
    source?: ResultSource;
} | OAuth2Error | Error;
export declare const actions: readonly ["confirm", "accept", "approve", "sign", "login"];
export declare type Action = typeof actions[number];
export declare type Claims = {
    iss: string;
    aud: string;
    identityscheme: string;
    authenticationtype: string;
    sub: string;
    iat: number;
    exp: number;
    [key: string]: string | number;
};
export interface CriiptoVerifyContextInterface {
    loginWithRedirect: (params?: RedirectAuthorizeParams) => Promise<void>;
    loginWithPopup: (params?: PopupAuthorizeParams) => Promise<void>;
    checkSession: () => Promise<void>;
    logout: (params?: {
        redirectUri?: string;
        state?: string;
    }) => Promise<void>;
    fetchOpenIDConfiguration: () => Promise<OpenIDConfiguration>;
    buildAuthorizeUrl: (options?: AuthorizeUrlParamsOptional) => Promise<string>;
    generatePKCE: () => Promise<PKCE | undefined>;
    buildOptions: (options?: AuthorizeUrlParamsOptional | RedirectAuthorizeParams) => AuthorizeUrlParamsOptional;
    handleResponse: (response: AuthorizeResponse, params: {
        pkce?: PKCE;
        redirectUri?: string;
        source?: ResultSource;
    }) => Promise<void>;
    responseType: 'token' | 'code';
    completionStrategy: 'client' | 'openidprovider';
    result: Result | null;
    claims: Claims | null;
    domain: string;
    redirectUri?: string;
    action: Action;
    message?: string;
    pkce?: PKCE | PKCEPublicPart;
    store: Storage;
    isLoading: boolean;
    isInitializing: boolean;
    acrValues?: string[];
    uiLocales?: string;
    client: CriiptoAuth;
    loginHint?: string;
}
declare const CriiptoVerifyContext: import("react").Context<CriiptoVerifyContextInterface>;
export default CriiptoVerifyContext;
