import { BrowserAuthOptions } from "@azure/msal-browser";
import log from "loglevel";
import { IAuthTokens, IDataLayer, IDataLayerMain, IDataProduct, IDataProductResult } from "./types";
declare type OdpClientConfig = {
    logLevel: log.LogLevelDesc;
};
declare type AuthListenersT = (token?: IAuthTokens) => void;
export default class ODPClient {
    private authResult;
    private listeners;
    private auth;
    private _catalog;
    constructor(options: OdpClientConfig, authConfig: BrowserAuthOptions);
    get authTokens(): IAuthTokens | undefined;
    authenticate(): Promise<IAuthTokens | undefined>;
    unauthorizeUser(): Promise<void>;
    searchCatalog(keyword: string): Promise<IDataProductResult[]>;
    autocompleteCatalog(keyword: string): Promise<string[]>;
    autocompleteDataLayers(keyword: string): Promise<IDataLayerMain[]>;
    getDataLayerById(id: number): Promise<IDataLayer | null>;
    getDataProductByUuid(dataProductUuid: string): Promise<IDataProduct | null>;
    getAllDataProducts(): Promise<IDataProductResult[]>;
    listenToAuthChanges: (listenerFn: AuthListenersT) => () => void;
    private notifyListeners;
    private authStateUpdated;
}
export {};
