import type * as Channels from "@tactfulai/channels";
import type * as Livechat from "@tactfulai/livechat-client";
import type * as Tenants from "@tactfulai/tenant-sdk";
import type * as AI from "@tactfulai/ai-sdk";
import type * as ERP from "@tactfulai/erp-sdk";
import type * as ERP_V2 from "@tactfulai/erp-sdk-v2";
import type * as Attachements from "@tactfulai/attachments-sdk";
import type * as Auth from "@tactfulai/auth";
import type * as Automation from "@tactfulai/automation-client";
export type { Channels, Livechat, Tenants, AI, ERP, ERP_V2, Attachements, Auth, Automation };
export type * from './auth-helper';
import { OauthCreds } from './auth-helper';
import { ChannelSDK } from "@tactfulai/channels";
import { command } from "@tactfulai/livechat-client";
import { IsolatedAISDK } from "@tactfulai/ai-sdk";
export type SDKsURLs = {
    auth: string;
    tenants: string;
    erp: string;
    erp_v2: string;
    attachments: string;
    livechat: string;
    livechatReader: string;
    channels: {
        email: string;
        meta: string;
        webchat: string;
    };
    ai: {
        ai: string;
        nlu: string;
        statistics: string;
        analysis: string;
        openAI: string;
    };
    automation: string;
};
export declare class UCXClient {
    auth: Auth.Apis;
    tenants: Tenants.Apis;
    erp: ERP.Apis;
    erp_v2: ERP_V2.Apis;
    attachments: Attachements.Apis;
    livechat: Livechat.Apis;
    livechatReader: Livechat.Apis;
    liveCommands: typeof command;
    liveCommandsReader: typeof command;
    channels: ChannelSDK;
    ai: IsolatedAISDK;
    automation: Automation.Apis;
    private domainFormat;
    private apiSubdomain;
    private accessToken?;
    private accessTokenExpiresIn?;
    private isInternal?;
    constructor(domainFormat?: string, apiSubdomain?: string, accessToken?: string | ((name: string, scopes?: string[]) => string), isInternal?: boolean);
    private getSDKsUrls;
    private initialize;
    loginWithCredentials(username: string, password: string, profile_id?: number): Promise<Auth.OauthCredintials>;
    loginWithToken(token: string, expires_in?: number): void;
    loginWithOAuth(OauthCreds: OauthCreds, profile_id?: number): Promise<import("./auth-helper").AccessToken>;
    checkTokenExpiration(): boolean;
}
export declare const TactfulClient: typeof UCXClient;
