import * as Comlink from 'comlink';
import { EmbedRenderOptions, FilterType } from '../../types';
export interface IComlinkBaseControllerAction {
    eventTracer: () => void;
    updateInterfaceConfig: (state: any) => void;
    getDsl: () => Promise<any>;
    getResultId: () => Promise<string | undefined>;
    setFilters(vids: FilterType[]): Promise<void>;
    getCurrentUrl: () => Promise<string>;
    getTeaUrl: () => Promise<string>;
    updateResultId: (resultId: string, source: string) => Promise<void>;
    copyResultId: (resultId: string) => Promise<string>;
}
export declare abstract class BaseAnalysisController {
    /** 基础状态值 */
    protected abstract state: EmbedRenderOptions;
    /** 页面iframe */
    protected iframe: HTMLIFrameElement | undefined;
    /** 页面交互控制器 */
    protected comlinkController: Comlink.Remote<IComlinkBaseControllerAction> | undefined;
    /** 埋点 */
    protected abstract eventTrace(): void;
    /** 打开嵌出页面 */
    openPage: (customeIframe?: HTMLIFrameElement) => Promise<void>;
    /** 获取查询dsl，包含时间、事件 */
    getDsl: () => any;
    /** 获取当前的resultId */
    getResultId: () => Promise<string> | Promise<undefined> | undefined;
    /** 获取当前嵌出页的url */
    getCurrentUrl: () => Promise<string> | undefined;
    /** 获取当前嵌出页对应的tea页面url */
    getTeaUrl: () => Promise<string> | undefined;
    /** 更新resultId内容 */
    updateResultId: (resultId: string, source: string) => Promise<void> | undefined;
    /** 更新细分筛选内容 */
    setFilters: (filters: FilterType[]) => Promise<void> | undefined;
    /** 复制 resultId */
    copyResultId: (resultId: string) => Promise<string> | undefined;
}
