import { FilterLogicalOperator } from "../QueryFilter"; import { FilterComponent } from "./FilterComponent"; import { IBooleanFilterOperatorBuilder, IDateTimeFilterOperatorBuilder, IDateTimeOffsetFilterOperatorBuilder, IFloatFilterOperatorBuilder, IIntFilterOperatorBuilder, ILongFilterOperatorBuilder, IStringFilterOperatorBuilder, IntFilterOperatorBuilder } from "./FilterOperatorBuilder"; export interface IFilterComponentBuilder { int(propertyName: string): IIntFilterOperatorBuilder; float(propertyName: string): IFloatFilterOperatorBuilder; dateTime(propertyName: string): IDateTimeFilterOperatorBuilder; dateTimeOffset(propertyName: string): IDateTimeOffsetFilterOperatorBuilder; string(propertyName: string): IStringFilterOperatorBuilder; boolean(propertyName: string): IBooleanFilterOperatorBuilder; long(propertyName: string): ILongFilterOperatorBuilder; expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder; } export interface IFilterLogicalOperatorBuilder { and(): IFilterComponentBuilder; or(): IFilterComponentBuilder; build(): FilterComponent[]; } export declare class FilterBuilder implements IFilterComponentBuilder, IFilterLogicalOperatorBuilder { protected filters: FilterComponent[]; protected intFilterOperatorBuilder?: IntFilterOperatorBuilder; private floatFilterOperatorBuilder?; private dateTimeFilterOperatorBuilder?; private dateTimeOffsetFilterOperatorBuilder?; private stringFilterOperatorBuilder?; private booleanFilterOperatorBuilder?; private longFilterOperatorBuilder?; propertyName?: string; filterLogicalOperator: FilterLogicalOperator; constructor(filters?: FilterComponent[]); addFilter(filterComponent: FilterComponent): void; and(): IFilterComponentBuilder; or(): IFilterComponentBuilder; build(): FilterComponent[]; int(propertyName: string): IIntFilterOperatorBuilder; float(propertyName: string): IFloatFilterOperatorBuilder; long(propertyName: string): ILongFilterOperatorBuilder; dateTime(propertyName: string): IDateTimeFilterOperatorBuilder; dateTimeOffset(propertyName: string): IDateTimeOffsetFilterOperatorBuilder; string(propertyName: string): IStringFilterOperatorBuilder; boolean(propertyName: string): IBooleanFilterOperatorBuilder; expression(buildInnerExpression: (builder: IFilterComponentBuilder) => IFilterLogicalOperatorBuilder): IFilterLogicalOperatorBuilder; }