yahoo-swiv
Version:
A web-based exploratory visualization UI for Druid.io
44 lines (43 loc) • 1.73 kB
TypeScript
import { Instance } from 'immutable-class';
import { Timezone } from 'chronoshift';
import { Expression, ExpressionJS, Set, ChainExpression, Range, TimeRange } from 'swiv-plywood';
export declare type FilterSelection = Expression | string;
export declare type SupportedAction = 'overlap' | 'contains' | 'match';
export interface FilterClauseValue {
action?: SupportedAction;
expression: Expression;
selection?: FilterSelection;
exclude?: boolean;
}
export interface FilterClauseJS {
action?: SupportedAction;
expression: ExpressionJS;
selection?: ExpressionJS | string;
exclude?: boolean;
}
export declare class FilterClause implements Instance<FilterClauseValue, FilterClauseJS> {
static isFilterClause(candidate: any): candidate is FilterClause;
static NOW_REF_NAME: string;
static MAX_TIME_REF_NAME: string;
static evaluate(selection: Expression, now: Date, maxTime: Date, timezone: Timezone): TimeRange;
static fromExpression(ex: Expression): FilterClause;
static fromJS(parameters: FilterClauseJS): FilterClause;
action: SupportedAction;
expression: Expression;
selection: FilterSelection;
exclude: boolean;
relative: boolean;
constructor(parameters: FilterClauseValue);
valueOf(): FilterClauseValue;
toJS(): FilterClauseJS;
toJSON(): FilterClauseJS;
toString(): string;
equals(other: FilterClause): boolean;
toExpression(): ChainExpression;
getLiteralSet(): Set;
getExtent(): Range<any>;
isLessThanFullDay(): boolean;
changeSelection(selection: Expression): FilterClause;
changeExclude(exclude: boolean): FilterClause;
evaluate(now: Date, maxTime: Date, timezone: Timezone): FilterClause;
}