import { StatusResponse, LunchMoneyKrakenConnectionConfig, KrakenResponse } from '../types/kraken.js';
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
export default class KrakenAPI {
    readonly client: AxiosInstance;
    readonly connection: LunchMoneyKrakenConnectionConfig;
    config: {
        url: string;
        version: number;
    };
    routes: {
        PUBLIC_SYSTEM_STATUS: string;
        PRIVATE_BALANCE: string;
    };
    constructor(connection: LunchMoneyKrakenConnectionConfig);
    getAccountBalances(): Promise<AxiosResponse<KrakenResponse<Map<string, string>>>>;
    getSystemStatus(): Promise<AxiosResponse<KrakenResponse<StatusResponse>>>;
    options(path: string, payload: Record<string, unknown>, secret: string, nonce: number): AxiosRequestConfig;
    static getMessageSignature(path: string, request: Record<string, unknown>, key: string, nonce: number): string;
    static genNonce(): number;
    static formUrlEncoded(payload: Record<string, string | number>): string;
}
