import { State } from './state';
export interface ClientState {
    apiVersion: string;
    hatDomain: string;
    token?: string;
    secure: boolean;
    authenticated: boolean;
    onTokenChange?: (token: string) => void;
}
export interface HatClientConfig {
    apiVersion?: string;
    hatDomain?: string;
    token?: string;
    secure?: boolean;
    onTokenChange?: (token: string) => void;
}
export declare class HatClient {
    private mHeaders;
    private state;
    private httpSvc;
    constructor(config: HatClientConfig);
    static authenticate(token: string, secure?: boolean): HatClient;
    update(newState: State): void;
    auth(): import("./api/authentication").HatAuth;
    registration(): import("./api/registration").HatRegistration;
    applications(): import("./api/applications").Applications;
    dataDebits(): import("./api/data-debits").DataDebits;
    hatData(): import("./api/hat-data").HatData;
    files(): import("./api/hat-files").HatFiles;
    isAuthenticated(): void;
}
