export interface IDataSource {
    id: string;
    name: string;
    pid: string;
    isVariable?: boolean;
    multiSeries?: boolean;
    source: {
        type: any;
        filter: {
            useFilter: boolean;
            filterId: string;
            fileCode?: string;
        };
        isAutoUpdate: boolean;
        autoUpdateTime: number;
        dynamicMapping?: boolean;
        isUserdata?: boolean;
        mapping: IMapping[];
        static?: any;
        api?: IApi;
        mysql?: IDBServer;
        sqlServer?: IDBServer;
        mariadb?: IDBServer;
        oracle?: IDBServer;
        mongodb?: IDBServer;
        kingbase?: IDBServer;
        variableId?: string;
        ck?: IDBServer;
        dm?: IDBServer;
        pg?: IDBServer;
        excel?: IFileData;
        csv?: IFileData;
        json?: IFileData;
        websocket?: IWebSocket;
        storage?: IStorage;
    };
}
export interface IMapping {
    name: string;
    mapping: string;
    label: string;
    alias?: string;
}
export interface IStorage {
    getType: 0 | 1 | 2;
    getField: string;
    setType: 0 | 1 | 2;
    setField: string;
}
export interface IApi {
    type: string;
    headers: any;
    isHeaders: boolean;
    isBody: false;
    contentType: string;
    getParam?: string;
    postParam?: any;
    url: string;
    cookie: boolean;
    proxy: boolean;
}
export interface IDBServer {
    id: string;
    statement: string;
}
export interface IFileData {
    key: string;
    id: string;
}
export interface IWebSocket {
    url: string;
    protocols?: string | string[];
    reconnect?: boolean;
    reconnectInterval?: number;
    maxReconnectAttempts?: number;
    message?: any;
    isMessage: boolean;
    headers?: Record<string, string>;
    isHeaders?: boolean;
    binaryType?: "blob" | "arraybuffer";
    timeout?: number;
}
export interface IVariable {
    id: string;
    name: string;
    sources: IDataSource;
    useList: string[];
    pageId: string;
}
