import moment from 'moment';
import { ISearchCondition } from '@qn-pandora/app-sdk';
import { ESearchFormat } from '@qn-pandora/app-sdk';
import Store from '../../stores/store';
import { ITimeRange, TimeShiftUnit } from './constants';
import ISearchConditionService from './type';
export default abstract class SearchConditionService extends Store implements ISearchConditionService {
    /**
     * 存储到dashboard的line
     */
    abstract option: any;
    /**
     * 可能影响dataset fields的因素
     */
    abstract datasetParams: any;
    /**
     * 用于获取数据的参数
     */
    abstract getParams(): any;
    abstract queryString: string;
    sorts: ISearchCondition['sorts'];
    queries: string[];
    /**
     * setOriginQueryString时是否需要触发 datasetReaction
     */
    shouldDatasetReaction: boolean;
    /**
     * setOriginQueryString的唯一ID，用来触发dataSetReaction
     */
    uniqOriginQueryStringSetId: string;
    _originQueryString: string;
    format?: ESearchFormat;
    get originQueryString(): string;
    setQueries(v: string[]): void;
    setOriginQueryString(queryString: string, shouldDatasetReaction?: boolean): void;
    time: ITimeRange;
    setTime(time: ITimeRange): void;
    setSorts(v: ISearchCondition['sorts']): void;
    get timeShift(): string;
    get timeShiftValue(): number;
    get timeShiftUnit(): TimeShiftUnit.Second | TimeShiftUnit;
    get isGlobalTime(): boolean;
    getRelativeTime(time?: any): moment.Moment | undefined;
    calcTime(): {
        start: number | undefined;
        end: number | undefined;
        onlyTradingDay: boolean | undefined;
    };
    setFormat(format?: ESearchFormat): void;
    setTimeAndOriginqueryString(time: ITimeRange, queryString: string, shouldDatasetReaction?: boolean): void;
}
