import { EventEmitter } from "../../stencil-public-runtime";
export declare const envMode: string;
export interface IProviderConfig extends Record<string, any> {
}
export interface IPrechatFormDetail {
    label: string;
    value: string;
    displayToAgent?: boolean;
}
export interface IStartChatOptions {
    sessionId: string;
    userId: string;
    userDetails?: Record<string, string>;
    extraPrechatFormDetails?: IPrechatFormDetail[];
    config?: IProviderConfig;
    conversationId?: string;
    messageHistory?: any;
}
export interface ISendMessageOptions {
    sessionId: string;
    message: string;
    isNewSession?: boolean;
}
export interface IPollMessagesOptions {
    sessionId: string;
}
export interface ILiveAgentProvider {
    startChat(options: IStartChatOptions): Promise<void>;
    resumeChat?(options: IStartChatOptions): Promise<void>;
    sendMessage(options: ISendMessageOptions): Promise<void>;
    pollMessages(sessionId: string): Promise<void | string[]>;
    isChatActive(sessionId: string): Promise<boolean>;
    endChat(sessionId: string): Promise<void>;
    getTranscript?(sessionId: string): Promise<string[]>;
    liveAgentReady?: EventEmitter<void>;
    messageReceived?: EventEmitter<any>;
}
/**
 * Thrown when a resumed live-agent session is rejected with HTTP 401 or 403,
 * indicating the stored access token has expired or been revoked.
 */
export declare class LiveAgentAuthExpiredError extends Error {
    constructor(message?: string);
}
