import { Field, RuleType, OperatorDef, VocabularyValueType } from "./types.js"; import { VocabularyValue } from "./values.js"; export type OperatorResult = [string, any[]]; export declare class Argument { private value; private expectedType; constructor(value: T | VocabularyValue, expectedType: VocabularyValueType); private validateType; private getExpectedJsType; toDict(): any; static process(arg: any, expectedType: VocabularyValueType): any; toString(): string; } export declare class BooleanField implements Field { readonly type = RuleType.BOOLEAN; readonly operators: Record; readonly defaultValue: boolean; readonly name: string; readonly description: string; constructor(name: string, description?: string, defaultValue?: boolean); equals(value: boolean | VocabularyValue): OperatorResult; is_null(): OperatorResult; } export declare class NumberField implements Field { readonly type = RuleType.NUMBER; readonly operators: Record; readonly defaultValue: number; readonly name: string; readonly description: string; constructor(name: string, description?: string, defaultValue?: number); equals(value: number | VocabularyValue): OperatorResult; not_equals(value: number | VocabularyValue): OperatorResult; greater_than(value: number | VocabularyValue): OperatorResult; less_than(value: number | VocabularyValue): OperatorResult; greater_than_or_equal(value: number | VocabularyValue): OperatorResult; less_than_or_equal(value: number | VocabularyValue): OperatorResult; between(start: number | VocabularyValue, end: number | VocabularyValue): OperatorResult; not_between(start: number | VocabularyValue, end: number | VocabularyValue): OperatorResult; is_even(): OperatorResult; is_odd(): OperatorResult; is_positive(): OperatorResult; is_negative(): OperatorResult; is_zero(): OperatorResult; is_not_zero(): OperatorResult; is_multiple_of(value: number | VocabularyValue): OperatorResult; is_not_multiple_of(value: number | VocabularyValue): OperatorResult; is_power_of(base: number | VocabularyValue): OperatorResult; is_null(): OperatorResult; } export declare class DateField implements Field { readonly type = RuleType.DATE; readonly operators: Record; readonly defaultValue: Date; readonly name: string; readonly description: string; constructor(name: string, description?: string, defaultValue?: Date | null); is_past(): OperatorResult; is_future(): OperatorResult; days_ago(days: number | VocabularyValue): OperatorResult; less_than_days_ago(days: number | VocabularyValue): OperatorResult; more_than_days_ago(days: number | VocabularyValue): OperatorResult; between_n_and_m_days_ago(minDays: number | VocabularyValue, maxDays: number | VocabularyValue): OperatorResult; days_from_now(days: number | VocabularyValue): OperatorResult; less_than_days_from_now(days: number | VocabularyValue): OperatorResult; more_than_days_from_now(days: number | VocabularyValue): OperatorResult; months_ago(months: number | VocabularyValue): OperatorResult; less_than_months_ago(months: number | VocabularyValue): OperatorResult; more_than_months_ago(months: number | VocabularyValue): OperatorResult; between_n_and_m_months_ago(minMonths: number | VocabularyValue, maxMonths: number | VocabularyValue): OperatorResult; months_from_now(months: number | VocabularyValue): OperatorResult; less_than_months_from_now(months: number | VocabularyValue): OperatorResult; more_than_months_from_now(months: number | VocabularyValue): OperatorResult; is_today(): OperatorResult; is_this_week(): OperatorResult; is_this_month(): OperatorResult; is_this_year(): OperatorResult; is_next_week(): OperatorResult; is_next_month(): OperatorResult; is_next_year(): OperatorResult; is_last_week(): OperatorResult; is_last_month(): OperatorResult; is_last_year(): OperatorResult; after(date: Date | string | VocabularyValue): OperatorResult; on_or_after(date: Date | string | VocabularyValue): OperatorResult; before(date: Date | string | VocabularyValue): OperatorResult; on_or_before(date: Date | string | VocabularyValue): OperatorResult; equals(date: Date | string | VocabularyValue): OperatorResult; not_equals(date: Date | string | VocabularyValue): OperatorResult; between(start: Date | string | VocabularyValue, end: Date | string | VocabularyValue): OperatorResult; not_between(start: Date | string | VocabularyValue, end: Date | string | VocabularyValue): OperatorResult; is_null(): OperatorResult; } export declare class StringField implements Field { readonly type = RuleType.STRING; readonly operators: Record; readonly defaultValue: string; readonly name: string; readonly description: string; constructor(name: string, description?: string, defaultValue?: string); contains(value: string | VocabularyValue): OperatorResult; not_contains(value: string | VocabularyValue): OperatorResult; equals(value: string | VocabularyValue): OperatorResult; equals_case_insensitive(value: string | VocabularyValue): OperatorResult; not_equals(value: string | VocabularyValue): OperatorResult; not_equals_case_insensitive(value: string | VocabularyValue): OperatorResult; is_empty(): OperatorResult; is_not_empty(): OperatorResult; starts_with(value: string | VocabularyValue): OperatorResult; ends_with(value: string | VocabularyValue): OperatorResult; contains_case_insensitive(value: string | VocabularyValue): OperatorResult; starts_with_case_insensitive(value: string | VocabularyValue): OperatorResult; ends_with_case_insensitive(value: string | VocabularyValue): OperatorResult; is_included_in(values: string[] | VocabularyValue): OperatorResult; is_not_included_in(values: string[] | VocabularyValue): OperatorResult; contains_any_of(values: string[] | VocabularyValue): OperatorResult; does_not_contain_any_of(values: string[] | VocabularyValue): OperatorResult; length_equals(length: number | VocabularyValue): OperatorResult; is_of_length(length: number | VocabularyValue): OperatorResult; length_not_equals(length: number | VocabularyValue): OperatorResult; is_not_of_length(length: number | VocabularyValue): OperatorResult; longer_than(length: number | VocabularyValue): OperatorResult; is_longer_than(length: number | VocabularyValue): OperatorResult; shorter_than(length: number | VocabularyValue): OperatorResult; is_shorter_than(length: number | VocabularyValue): OperatorResult; longer_than_or_equal(length: number | VocabularyValue): OperatorResult; is_longer_than_or_equal(length: number | VocabularyValue): OperatorResult; shorter_than_or_equal(length: number | VocabularyValue): OperatorResult; is_shorter_than_or_equal(length: number | VocabularyValue): OperatorResult; matches_regex(pattern: string | VocabularyValue): OperatorResult; not_matches_regex(pattern: string | VocabularyValue): OperatorResult; is_email(): OperatorResult; is_not_email(): OperatorResult; is_url(): OperatorResult; is_not_url(): OperatorResult; is_ip(): OperatorResult; is_not_ip(): OperatorResult; is_uppercase(): OperatorResult; is_lowercase(): OperatorResult; is_numeric(): OperatorResult; contains_only_digits(): OperatorResult; contains_only_letters(): OperatorResult; contains_only_digits_and_letters(): OperatorResult; is_null(): OperatorResult; } export declare class ListField implements Field { readonly type = RuleType.LIST; readonly operators: Record; readonly defaultValue: any[]; readonly name: string; readonly description: string; constructor(name: string, description?: string, defaultValue?: any[]); contains(value: any | VocabularyValue): OperatorResult; is_empty(): OperatorResult; is_not_empty(): OperatorResult; length_equals(length: number | VocabularyValue): OperatorResult; length_not_equals(length: number | VocabularyValue): OperatorResult; longer_than(length: number | VocabularyValue): OperatorResult; shorter_than(length: number | VocabularyValue): OperatorResult; contains_all(values: any[] | VocabularyValue): OperatorResult; contains_any(values: any[] | VocabularyValue): OperatorResult; contains_none(values: any[] | VocabularyValue): OperatorResult; not_contains(value: any | VocabularyValue): OperatorResult; equals(other: any[] | VocabularyValue): OperatorResult; not_equals(other: any[] | VocabularyValue): OperatorResult; has_duplicates(): OperatorResult; no_duplicates(): OperatorResult; contains_object_with_key_value(key: string | VocabularyValue, value: any | VocabularyValue): OperatorResult; does_not_contain_object_with_key_value(key: string | VocabularyValue, value: any | VocabularyValue): OperatorResult; contains_object_with_key(key: string | VocabularyValue): OperatorResult; does_not_contain_object_with_key(key: string | VocabularyValue): OperatorResult; has_unique_elements(): OperatorResult; is_sublist_of(superlist: any[] | VocabularyValue): OperatorResult; is_superlist_of(sublist: any[] | VocabularyValue): OperatorResult; is_null(): OperatorResult; }