/**
 * Describes the parameters accepted by a service. Each key is a service code,
 * and the value is an object containing parameters as key-value pairs.
 */
export interface ServiceParams {
    [serviceCode: string]: {
        [paramName: string]: string | number;
    };
}
/**
 * Describes a single service structure containing an array of service codes,
 * the WSDL URL, and optional parameters for those services.
 */
export interface ServiceStructure {
    services: string[];
    wsdl: string;
    params?: ServiceParams;
}
/**
 * Describes the optional login types that can be used when generating the
 * authorization URL. The default is OTP if not provided.
 */
export type LoginType = "OTP" | "signature" | "bank";
/**
 * Describes the shape of the OAuth 2.0 token exchange response. This is the
 * JSON structure you expect to receive from the token endpoint after a
 * successful exchange of the authorization code.
 */
export interface OAuthTokenResponse {
    access_token: string;
    token_type: string;
    expires_in: number;
    scope?: string;
}
/**
 * Parameters used to generate the authorization URL.
 */
export interface GenerateAuthorizationUrlParams {
    oauthAuthorizeEndpoint: string;
    clientId: string;
    redirectUri: string;
    serviceStructure: ServiceStructure[];
    state: string;
    loginType?: LoginType;
}
/**
 * Parameters needed to exchange the authorization code for an access token.
 */
export interface ExchangeCodeForTokenParams {
    oauthTokenEndpoint: string;
    clientId: string;
    clientSecret: string;
    code: string;
    redirectUri: string;
}
/**
 * Parameters for calling a protected resource.
 */
export interface CallResourceParams {
    resourceEndpoint: string;
    accessToken: string;
}
export interface ValidateStateParams {
    returnedState: string;
    originalState: string;
}
//# sourceMappingURL=types.d.ts.map