import { AxiosInstance } from "axios";
import "reflect-metadata";
import { Content } from "./resources/Content";
import { Contribute } from "./resources/Contribute";
import { Search } from "./resources/Search";
export interface IClientArgs {
    org: string;
    token: string;
    rootMapId: string;
    timeout?: number;
    scheme?: string;
    hostname?: string;
    env?: string;
    content_root?: string;
    loginRedirect?: string;
    loginRequired?: boolean;
    interceptors?: Array<(axios: AxiosInstance) => void>;
    rateLimit?: {
        maxRequests?: number;
        maxRPS: number;
    };
}
export default class Client {
    readonly base_url: string;
    content_axios: AxiosInstance;
    contribute_axios: AxiosInstance;
    content: Content;
    search: Search;
    contribute: Contribute;
    content_service_token: string;
    initial_args: IClientArgs;
    constructor(args: IClientArgs);
    iframe_url(): string;
    user_token(): string;
    login(): Promise<void>;
    prepare(args: any): Promise<Client>;
}
