export type CriteriaKey = string | number | symbol; export type CriteriaCallback = (key: CriteriaKey, value: any) => void; export interface AbstractCriteria { assign(callback: CriteriaCallback): void; equals(value: T): boolean; key: keyof O; value: T; } export declare class Criteria implements AbstractCriteria { readonly key: keyof O; readonly value: T; constructor(key: keyof O, value: T); assign(callback: CriteriaCallback): void; equals(value: T): boolean; } export declare class Criterias { private collection; constructor(); append(criteria: AbstractCriteria): this; append(key: keyof O, value: T): this; request(key: keyof O): Undefined>; value(key: keyof O): Undefined; equals({ collection }: Criterias): boolean; toLiteralObject(): LiteralObject; static fromLiteralObject(object: O): Criterias; }