import { ICalculateCoordZ } from '../data-type';
export type Imode = 'cloud' | 'local';
export interface Iattr {
    queryId: string;
    gather: string;
    condition: Record<string, any>;
}
export interface Ialgoriyhm {
    type: string;
    parameters: Record<string, any>;
}
export interface Ifilters {
    attr: Array<Iattr>;
}
export interface IclusterStart {
    algorithm: Ialgoriyhm;
    filters?: Ifilters;
    mode?: Imode;
    url?: string;
}
export interface IattrparExt {
    aggicon: Record<string, any>;
    covering: Record<string, any>;
    calculateCoordZ: ICalculateCoordZ;
}
export interface IattPar extends Iattr, IattrparExt {
}
export interface IfilterPar {
    attr: Array<IattPar>;
}
export interface IclusterStartPar {
    algorithm: Ialgoriyhm;
    filters: IfilterPar;
    openOnClick?: boolean;
    aggregationLimit?: number;
    mode?: Imode;
    url?: string;
}
export interface IdataBasic {
    gather: string;
    mode?: Imode;
}
export interface IcreateData extends IdataBasic {
    data: Array<{
        id: string | number;
        coord: string;
        [key: string]: any;
    }>;
}
export interface IDelData extends IdataBasic {
    condition: Record<string, any>;
}
export interface IDelGatherData extends Pick<IdataBasic, 'mode'> {
    condition: Record<string, any>;
}
export interface Iselector {
    coord: string | Array<string>;
    distance?: number;
}
export interface ISearchByPoint extends Pick<IdataBasic, 'mode'> {
    filters: {
        attr: Array<IattPar>;
        selector: Iselector;
    };
}
export interface ISearchByLine extends Pick<IdataBasic, 'mode'> {
    filters: {
        attr: Array<IattPar>;
        selector: Iselector;
    };
}
export interface ISearchByArea extends Pick<IdataBasic, 'mode'> {
    filters: {
        attr: Array<IattPar>;
        selector: Iselector;
    };
}
