plywood
Version:
A query planner and executor
66 lines • 2.44 kB
TypeScript
import { Timezone } from 'chronoshift';
import { Instance } from 'immutable-class';
import { PlyType } from '../types';
import { PlywoodValue } from './dataset';
import { PlywoodRange } from './range';
export interface SetValue {
setType: PlyType;
elements: Array<any>;
}
export interface SetJS {
setType: PlyType;
elements: Array<any>;
}
export declare class Set implements Instance<SetValue, SetJS> {
static type: string;
static EMPTY: Set;
static unifyElements(elements: Array<PlywoodRange>): Array<PlywoodRange>;
static intersectElements(elements1: Array<PlywoodRange>, elements2: Array<PlywoodRange>): Array<PlywoodRange>;
static isSet(candidate: any): candidate is Set;
static isAtomicType(type: PlyType): boolean;
static isSetType(type: PlyType): boolean;
static wrapSetType(type: PlyType): PlyType;
static unwrapSetType(type: PlyType): PlyType;
static cartesianProductOf<T>(...args: T[][]): T[][];
static crossBinary(as: any, bs: any, fn: (a: any, b: any) => any): any;
static crossBinaryBoolean(as: any, bs: any, fn: (a: any, b: any) => boolean): boolean;
static crossUnary(as: any, fn: (a: any) => any): any;
static crossUnaryBoolean(as: any, fn: (a: any) => boolean): boolean;
static convertToSet(thing: any): Set;
static unionCover(a: any, b: any): any;
static intersectCover(a: any, b: any): any;
static fromPlywoodValue(pv: PlywoodValue): Set;
static fromJS(parameters: Array<any>): Set;
static fromJS(parameters: SetJS): Set;
setType: PlyType;
elements: Array<any>;
private readonly keyFn;
private readonly hash;
constructor(parameters: SetValue);
valueOf(): SetValue;
toJS(): SetJS;
toJSON(): SetJS;
toString(tz?: Timezone): string;
equals(other: Set | undefined): boolean;
changeSetType(setType: PlyType): Set;
changeElements(elements: any[]): Set;
cardinality(): int;
size(): int;
empty(): boolean;
isNullSet(): boolean;
unifyElements(): Set;
simplifyCover(): PlywoodValue;
getType(): PlyType;
upgradeType(): Set;
downgradeType(): Set;
extent(): PlywoodRange;
union(other: Set): Set;
intersect(other: Set): Set;
overlap(other: Set): boolean;
has(value: any): boolean;
contains(value: any): boolean;
add(value: any): Set;
remove(value: any): Set;
toggle(value: any): Set;
}
//# sourceMappingURL=set.d.ts.map