@guardian/threads
Version:
34 lines (33 loc) • 1.02 kB
TypeScript
export declare class UnknownFilter implements Filter {
name: string;
type: 'unknown';
}
export interface BooleanFilter extends Filter {
type: 'boolean';
}
export interface TextFilter extends Filter {
type: 'text' | 'date' | 'date_ex';
}
export declare type SelectFilterOption = {
label: string;
value: string;
};
export interface SelectFilter extends Filter {
type: 'select';
defaultValue: string;
options: SelectFilterOption[];
}
export interface SelectAsyncFilter extends Filter {
type: 'select_async';
onInputChange: (inputStr: string) => Promise<SelectFilterOption[]>;
}
export interface Filter {
name: string;
type: 'text' | 'date' | 'date_ex' | 'select' | 'select_async' | 'boolean' | 'unknown';
}
export declare namespace FilterHelpers {
function isBoolean(f: Filter): f is BooleanFilter;
function isText(f: Filter): f is TextFilter;
function isSelect(f: Filter): f is SelectFilter;
function isSelectAsync(f: Filter): f is SelectAsyncFilter;
}