import { ExchangeTokenOptions, InitSessionOptions, NordigenClientOptions, RequestWrapperOptions } from './types/client.js';
import { SpectacularJWTObtain, SpectacularJWTRefresh, SpectacularRequisition } from './generated.js';
import { InstitutionApi } from './api/InstitutionApi.js';
import { AgreementApi } from './api/AgreementApi.js';
import { RequisitionsApi } from './api/RequisitionsApi.js';
import { AccountApi } from './api/AccountApi.js';

export declare class NordigenClient {
    private readonly endpoint;
    private _token;
    private readonly baseUrl;
    private readonly secretId;
    private readonly secretKey;
    private headers;
    institution: InstitutionApi;
    agreement: AgreementApi;
    requisition: RequisitionsApi;
    constructor({ secretId, secretKey, baseUrl }: NordigenClientOptions);
    set token(token: string | null);
    get token(): string | null;
    account(accountId: string): AccountApi;
    request<T = unknown, P = unknown>({ endpoint, parameters, method }: RequestWrapperOptions<P>): Promise<T>;
    generateToken(): Promise<SpectacularJWTObtain>;
    exchangeToken({ refreshToken }: ExchangeTokenOptions): Promise<SpectacularJWTRefresh>;
    initSession({ redirectUrl, institutionId, maxHistoricalDays, userLanguage, referenceId, ssn, redirectImmediate, accountSelection, }: InitSessionOptions): Promise<SpectacularRequisition>;
}
