import { Duration } from './google/protobuf/duration.js';
import { FilterStatusOperator, FilterString, FilterNumber, FilterBoolean, FilterDate, FilterArray, FilterDuration, FilterStringOperator, FilterNumberOperator, FilterBooleanOperator, FilterDateOperator, FilterArrayOperator, FilterDurationOperator } from './filters_common.js';
import { SessionField, SessionRawEnumField, TaskOptionEnumField } from './sessions_fields.js';
import _m0 from 'protobufjs/minimal.js';
import { SessionStatus } from './session_status.js';

declare const protobufPackage = "armonik.api.grpc.v1.sessions";
interface FilterStatus {
    value: SessionStatus;
    operator: FilterStatusOperator;
}
declare const FilterStatus: {
    encode(message: FilterStatus, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): FilterStatus;
    fromJSON(object: any): FilterStatus;
    toJSON(message: FilterStatus): unknown;
    create<I extends {
        value?: SessionStatus | undefined;
        operator?: FilterStatusOperator | undefined;
    } & {
        value?: SessionStatus | undefined;
        operator?: FilterStatusOperator | undefined;
    } & { [K in Exclude<keyof I, keyof FilterStatus>]: never; }>(base?: I | undefined): FilterStatus;
    fromPartial<I_1 extends {
        value?: SessionStatus | undefined;
        operator?: FilterStatusOperator | undefined;
    } & {
        value?: SessionStatus | undefined;
        operator?: FilterStatusOperator | undefined;
    } & { [K_1 in Exclude<keyof I_1, keyof FilterStatus>]: never; }>(object: I_1): FilterStatus;
};
interface FilterField {
    field: SessionField | undefined;
    filterString?: FilterString | undefined;
    filterNumber?: FilterNumber | undefined;
    filterBoolean?: FilterBoolean | undefined;
    filterStatus?: FilterStatus | undefined;
    filterDate?: FilterDate | undefined;
    filterArray?: FilterArray | undefined;
    filterDuration?: FilterDuration | undefined;
}
declare const FilterField: {
    encode(message: FilterField, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): FilterField;
    fromJSON(object: any): FilterField;
    toJSON(message: FilterField): unknown;
    create<I extends {
        field?: {
            sessionRawField?: {
                field?: SessionRawEnumField | undefined;
            } | undefined;
            taskOptionField?: {
                field?: TaskOptionEnumField | undefined;
            } | undefined;
            taskOptionGenericField?: {
                field?: string | undefined;
            } | undefined;
        } | undefined;
        filterString?: {
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } | undefined;
        filterNumber?: {
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } | undefined;
        filterBoolean?: {
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } | undefined;
        filterStatus?: {
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } | undefined;
        filterDate?: {
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } | undefined;
        filterArray?: {
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } | undefined;
        filterDuration?: {
            value?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            operator?: FilterDurationOperator | undefined;
        } | undefined;
    } & {
        field?: ({
            sessionRawField?: {
                field?: SessionRawEnumField | undefined;
            } | undefined;
            taskOptionField?: {
                field?: TaskOptionEnumField | undefined;
            } | undefined;
            taskOptionGenericField?: {
                field?: string | undefined;
            } | undefined;
        } & {
            sessionRawField?: ({
                field?: SessionRawEnumField | undefined;
            } & {
                field?: SessionRawEnumField | undefined;
            } & { [K in Exclude<keyof I["field"]["sessionRawField"], "field">]: never; }) | undefined;
            taskOptionField?: ({
                field?: TaskOptionEnumField | undefined;
            } & {
                field?: TaskOptionEnumField | undefined;
            } & { [K_1 in Exclude<keyof I["field"]["taskOptionField"], "field">]: never; }) | undefined;
            taskOptionGenericField?: ({
                field?: string | undefined;
            } & {
                field?: string | undefined;
            } & { [K_2 in Exclude<keyof I["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
        } & { [K_3 in Exclude<keyof I["field"], keyof SessionField>]: never; }) | undefined;
        filterString?: ({
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } & {
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } & { [K_4 in Exclude<keyof I["filterString"], keyof FilterString>]: never; }) | undefined;
        filterNumber?: ({
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } & {
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } & { [K_5 in Exclude<keyof I["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
        filterBoolean?: ({
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } & {
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } & { [K_6 in Exclude<keyof I["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
        filterStatus?: ({
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } & {
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } & { [K_7 in Exclude<keyof I["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
        filterDate?: ({
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } & {
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } & { [K_8 in Exclude<keyof I["filterDate"], keyof FilterDate>]: never; }) | undefined;
        filterArray?: ({
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } & {
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } & { [K_9 in Exclude<keyof I["filterArray"], keyof FilterArray>]: never; }) | undefined;
        filterDuration?: ({
            value?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            operator?: FilterDurationOperator | undefined;
        } & {
            value?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & { [K_10 in Exclude<keyof I["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
            operator?: FilterDurationOperator | undefined;
        } & { [K_11 in Exclude<keyof I["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
    } & { [K_12 in Exclude<keyof I, keyof FilterField>]: never; }>(base?: I | undefined): FilterField;
    fromPartial<I_1 extends {
        field?: {
            sessionRawField?: {
                field?: SessionRawEnumField | undefined;
            } | undefined;
            taskOptionField?: {
                field?: TaskOptionEnumField | undefined;
            } | undefined;
            taskOptionGenericField?: {
                field?: string | undefined;
            } | undefined;
        } | undefined;
        filterString?: {
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } | undefined;
        filterNumber?: {
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } | undefined;
        filterBoolean?: {
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } | undefined;
        filterStatus?: {
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } | undefined;
        filterDate?: {
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } | undefined;
        filterArray?: {
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } | undefined;
        filterDuration?: {
            value?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            operator?: FilterDurationOperator | undefined;
        } | undefined;
    } & {
        field?: ({
            sessionRawField?: {
                field?: SessionRawEnumField | undefined;
            } | undefined;
            taskOptionField?: {
                field?: TaskOptionEnumField | undefined;
            } | undefined;
            taskOptionGenericField?: {
                field?: string | undefined;
            } | undefined;
        } & {
            sessionRawField?: ({
                field?: SessionRawEnumField | undefined;
            } & {
                field?: SessionRawEnumField | undefined;
            } & { [K_13 in Exclude<keyof I_1["field"]["sessionRawField"], "field">]: never; }) | undefined;
            taskOptionField?: ({
                field?: TaskOptionEnumField | undefined;
            } & {
                field?: TaskOptionEnumField | undefined;
            } & { [K_14 in Exclude<keyof I_1["field"]["taskOptionField"], "field">]: never; }) | undefined;
            taskOptionGenericField?: ({
                field?: string | undefined;
            } & {
                field?: string | undefined;
            } & { [K_15 in Exclude<keyof I_1["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
        } & { [K_16 in Exclude<keyof I_1["field"], keyof SessionField>]: never; }) | undefined;
        filterString?: ({
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } & {
            value?: string | undefined;
            operator?: FilterStringOperator | undefined;
        } & { [K_17 in Exclude<keyof I_1["filterString"], keyof FilterString>]: never; }) | undefined;
        filterNumber?: ({
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } & {
            value?: number | undefined;
            operator?: FilterNumberOperator | undefined;
        } & { [K_18 in Exclude<keyof I_1["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
        filterBoolean?: ({
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } & {
            value?: boolean | undefined;
            operator?: FilterBooleanOperator | undefined;
        } & { [K_19 in Exclude<keyof I_1["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
        filterStatus?: ({
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } & {
            value?: SessionStatus | undefined;
            operator?: FilterStatusOperator | undefined;
        } & { [K_20 in Exclude<keyof I_1["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
        filterDate?: ({
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } & {
            value?: Date | undefined;
            operator?: FilterDateOperator | undefined;
        } & { [K_21 in Exclude<keyof I_1["filterDate"], keyof FilterDate>]: never; }) | undefined;
        filterArray?: ({
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } & {
            value?: string | undefined;
            operator?: FilterArrayOperator | undefined;
        } & { [K_22 in Exclude<keyof I_1["filterArray"], keyof FilterArray>]: never; }) | undefined;
        filterDuration?: ({
            value?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            operator?: FilterDurationOperator | undefined;
        } & {
            value?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & { [K_23 in Exclude<keyof I_1["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
            operator?: FilterDurationOperator | undefined;
        } & { [K_24 in Exclude<keyof I_1["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
    } & { [K_25 in Exclude<keyof I_1, keyof FilterField>]: never; }>(object: I_1): FilterField;
};
interface FiltersAnd {
    and: FilterField[];
}
declare const FiltersAnd: {
    encode(message: FiltersAnd, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): FiltersAnd;
    fromJSON(object: any): FiltersAnd;
    toJSON(message: FiltersAnd): unknown;
    create<I extends {
        and?: {
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        and?: ({
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[] & ({
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        } & {
            field?: ({
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } & {
                sessionRawField?: ({
                    field?: SessionRawEnumField | undefined;
                } & {
                    field?: SessionRawEnumField | undefined;
                } & { [K in Exclude<keyof I["and"][number]["field"]["sessionRawField"], "field">]: never; }) | undefined;
                taskOptionField?: ({
                    field?: TaskOptionEnumField | undefined;
                } & {
                    field?: TaskOptionEnumField | undefined;
                } & { [K_1 in Exclude<keyof I["and"][number]["field"]["taskOptionField"], "field">]: never; }) | undefined;
                taskOptionGenericField?: ({
                    field?: string | undefined;
                } & {
                    field?: string | undefined;
                } & { [K_2 in Exclude<keyof I["and"][number]["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
            } & { [K_3 in Exclude<keyof I["and"][number]["field"], keyof SessionField>]: never; }) | undefined;
            filterString?: ({
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } & {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } & { [K_4 in Exclude<keyof I["and"][number]["filterString"], keyof FilterString>]: never; }) | undefined;
            filterNumber?: ({
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } & {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } & { [K_5 in Exclude<keyof I["and"][number]["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
            filterBoolean?: ({
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } & {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } & { [K_6 in Exclude<keyof I["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
            filterStatus?: ({
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } & {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } & { [K_7 in Exclude<keyof I["and"][number]["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
            filterDate?: ({
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } & {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } & { [K_8 in Exclude<keyof I["and"][number]["filterDate"], keyof FilterDate>]: never; }) | undefined;
            filterArray?: ({
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } & {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } & { [K_9 in Exclude<keyof I["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
            filterDuration?: ({
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } & {
                value?: ({
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & { [K_10 in Exclude<keyof I["and"][number]["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
                operator?: FilterDurationOperator | undefined;
            } & { [K_11 in Exclude<keyof I["and"][number]["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
        } & { [K_12 in Exclude<keyof I["and"][number], keyof FilterField>]: never; })[] & { [K_13 in Exclude<keyof I["and"], keyof {
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_14 in Exclude<keyof I, "and">]: never; }>(base?: I | undefined): FiltersAnd;
    fromPartial<I_1 extends {
        and?: {
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        and?: ({
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[] & ({
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        } & {
            field?: ({
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } & {
                sessionRawField?: ({
                    field?: SessionRawEnumField | undefined;
                } & {
                    field?: SessionRawEnumField | undefined;
                } & { [K_15 in Exclude<keyof I_1["and"][number]["field"]["sessionRawField"], "field">]: never; }) | undefined;
                taskOptionField?: ({
                    field?: TaskOptionEnumField | undefined;
                } & {
                    field?: TaskOptionEnumField | undefined;
                } & { [K_16 in Exclude<keyof I_1["and"][number]["field"]["taskOptionField"], "field">]: never; }) | undefined;
                taskOptionGenericField?: ({
                    field?: string | undefined;
                } & {
                    field?: string | undefined;
                } & { [K_17 in Exclude<keyof I_1["and"][number]["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
            } & { [K_18 in Exclude<keyof I_1["and"][number]["field"], keyof SessionField>]: never; }) | undefined;
            filterString?: ({
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } & {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } & { [K_19 in Exclude<keyof I_1["and"][number]["filterString"], keyof FilterString>]: never; }) | undefined;
            filterNumber?: ({
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } & {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } & { [K_20 in Exclude<keyof I_1["and"][number]["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
            filterBoolean?: ({
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } & {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } & { [K_21 in Exclude<keyof I_1["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
            filterStatus?: ({
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } & {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } & { [K_22 in Exclude<keyof I_1["and"][number]["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
            filterDate?: ({
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } & {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } & { [K_23 in Exclude<keyof I_1["and"][number]["filterDate"], keyof FilterDate>]: never; }) | undefined;
            filterArray?: ({
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } & {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } & { [K_24 in Exclude<keyof I_1["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
            filterDuration?: ({
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } & {
                value?: ({
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & { [K_25 in Exclude<keyof I_1["and"][number]["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
                operator?: FilterDurationOperator | undefined;
            } & { [K_26 in Exclude<keyof I_1["and"][number]["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
        } & { [K_27 in Exclude<keyof I_1["and"][number], keyof FilterField>]: never; })[] & { [K_28 in Exclude<keyof I_1["and"], keyof {
            field?: {
                sessionRawField?: {
                    field?: SessionRawEnumField | undefined;
                } | undefined;
                taskOptionField?: {
                    field?: TaskOptionEnumField | undefined;
                } | undefined;
                taskOptionGenericField?: {
                    field?: string | undefined;
                } | undefined;
            } | undefined;
            filterString?: {
                value?: string | undefined;
                operator?: FilterStringOperator | undefined;
            } | undefined;
            filterNumber?: {
                value?: number | undefined;
                operator?: FilterNumberOperator | undefined;
            } | undefined;
            filterBoolean?: {
                value?: boolean | undefined;
                operator?: FilterBooleanOperator | undefined;
            } | undefined;
            filterStatus?: {
                value?: SessionStatus | undefined;
                operator?: FilterStatusOperator | undefined;
            } | undefined;
            filterDate?: {
                value?: Date | undefined;
                operator?: FilterDateOperator | undefined;
            } | undefined;
            filterArray?: {
                value?: string | undefined;
                operator?: FilterArrayOperator | undefined;
            } | undefined;
            filterDuration?: {
                value?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                operator?: FilterDurationOperator | undefined;
            } | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_29 in Exclude<keyof I_1, "and">]: never; }>(object: I_1): FiltersAnd;
};
interface Filters {
    or: FiltersAnd[];
}
declare const Filters: {
    encode(message: Filters, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Filters;
    fromJSON(object: any): Filters;
    toJSON(message: Filters): unknown;
    create<I extends {
        or?: {
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[] | undefined;
    } & {
        or?: ({
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[] & ({
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        } & {
            and?: ({
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] & ({
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            } & {
                field?: ({
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } & {
                    sessionRawField?: ({
                        field?: SessionRawEnumField | undefined;
                    } & {
                        field?: SessionRawEnumField | undefined;
                    } & { [K in Exclude<keyof I["or"][number]["and"][number]["field"]["sessionRawField"], "field">]: never; }) | undefined;
                    taskOptionField?: ({
                        field?: TaskOptionEnumField | undefined;
                    } & {
                        field?: TaskOptionEnumField | undefined;
                    } & { [K_1 in Exclude<keyof I["or"][number]["and"][number]["field"]["taskOptionField"], "field">]: never; }) | undefined;
                    taskOptionGenericField?: ({
                        field?: string | undefined;
                    } & {
                        field?: string | undefined;
                    } & { [K_2 in Exclude<keyof I["or"][number]["and"][number]["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
                } & { [K_3 in Exclude<keyof I["or"][number]["and"][number]["field"], keyof SessionField>]: never; }) | undefined;
                filterString?: ({
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } & {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } & { [K_4 in Exclude<keyof I["or"][number]["and"][number]["filterString"], keyof FilterString>]: never; }) | undefined;
                filterNumber?: ({
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } & {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } & { [K_5 in Exclude<keyof I["or"][number]["and"][number]["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
                filterBoolean?: ({
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } & {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } & { [K_6 in Exclude<keyof I["or"][number]["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
                filterStatus?: ({
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } & {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } & { [K_7 in Exclude<keyof I["or"][number]["and"][number]["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
                filterDate?: ({
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } & {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } & { [K_8 in Exclude<keyof I["or"][number]["and"][number]["filterDate"], keyof FilterDate>]: never; }) | undefined;
                filterArray?: ({
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } & {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } & { [K_9 in Exclude<keyof I["or"][number]["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
                filterDuration?: ({
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } & {
                    value?: ({
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & { [K_10 in Exclude<keyof I["or"][number]["and"][number]["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
                    operator?: FilterDurationOperator | undefined;
                } & { [K_11 in Exclude<keyof I["or"][number]["and"][number]["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
            } & { [K_12 in Exclude<keyof I["or"][number]["and"][number], keyof FilterField>]: never; })[] & { [K_13 in Exclude<keyof I["or"][number]["and"], keyof {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[]>]: never; }) | undefined;
        } & { [K_14 in Exclude<keyof I["or"][number], "and">]: never; })[] & { [K_15 in Exclude<keyof I["or"], keyof {
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_16 in Exclude<keyof I, "or">]: never; }>(base?: I | undefined): Filters;
    fromPartial<I_1 extends {
        or?: {
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[] | undefined;
    } & {
        or?: ({
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[] & ({
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        } & {
            and?: ({
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] & ({
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            } & {
                field?: ({
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } & {
                    sessionRawField?: ({
                        field?: SessionRawEnumField | undefined;
                    } & {
                        field?: SessionRawEnumField | undefined;
                    } & { [K_17 in Exclude<keyof I_1["or"][number]["and"][number]["field"]["sessionRawField"], "field">]: never; }) | undefined;
                    taskOptionField?: ({
                        field?: TaskOptionEnumField | undefined;
                    } & {
                        field?: TaskOptionEnumField | undefined;
                    } & { [K_18 in Exclude<keyof I_1["or"][number]["and"][number]["field"]["taskOptionField"], "field">]: never; }) | undefined;
                    taskOptionGenericField?: ({
                        field?: string | undefined;
                    } & {
                        field?: string | undefined;
                    } & { [K_19 in Exclude<keyof I_1["or"][number]["and"][number]["field"]["taskOptionGenericField"], "field">]: never; }) | undefined;
                } & { [K_20 in Exclude<keyof I_1["or"][number]["and"][number]["field"], keyof SessionField>]: never; }) | undefined;
                filterString?: ({
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } & {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } & { [K_21 in Exclude<keyof I_1["or"][number]["and"][number]["filterString"], keyof FilterString>]: never; }) | undefined;
                filterNumber?: ({
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } & {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } & { [K_22 in Exclude<keyof I_1["or"][number]["and"][number]["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
                filterBoolean?: ({
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } & {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } & { [K_23 in Exclude<keyof I_1["or"][number]["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
                filterStatus?: ({
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } & {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } & { [K_24 in Exclude<keyof I_1["or"][number]["and"][number]["filterStatus"], keyof FilterStatus>]: never; }) | undefined;
                filterDate?: ({
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } & {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } & { [K_25 in Exclude<keyof I_1["or"][number]["and"][number]["filterDate"], keyof FilterDate>]: never; }) | undefined;
                filterArray?: ({
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } & {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } & { [K_26 in Exclude<keyof I_1["or"][number]["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
                filterDuration?: ({
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } & {
                    value?: ({
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & { [K_27 in Exclude<keyof I_1["or"][number]["and"][number]["filterDuration"]["value"], keyof Duration>]: never; }) | undefined;
                    operator?: FilterDurationOperator | undefined;
                } & { [K_28 in Exclude<keyof I_1["or"][number]["and"][number]["filterDuration"], keyof FilterDuration>]: never; }) | undefined;
            } & { [K_29 in Exclude<keyof I_1["or"][number]["and"][number], keyof FilterField>]: never; })[] & { [K_30 in Exclude<keyof I_1["or"][number]["and"], keyof {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[]>]: never; }) | undefined;
        } & { [K_31 in Exclude<keyof I_1["or"][number], "and">]: never; })[] & { [K_32 in Exclude<keyof I_1["or"], keyof {
            and?: {
                field?: {
                    sessionRawField?: {
                        field?: SessionRawEnumField | undefined;
                    } | undefined;
                    taskOptionField?: {
                        field?: TaskOptionEnumField | undefined;
                    } | undefined;
                    taskOptionGenericField?: {
                        field?: string | undefined;
                    } | undefined;
                } | undefined;
                filterString?: {
                    value?: string | undefined;
                    operator?: FilterStringOperator | undefined;
                } | undefined;
                filterNumber?: {
                    value?: number | undefined;
                    operator?: FilterNumberOperator | undefined;
                } | undefined;
                filterBoolean?: {
                    value?: boolean | undefined;
                    operator?: FilterBooleanOperator | undefined;
                } | undefined;
                filterStatus?: {
                    value?: SessionStatus | undefined;
                    operator?: FilterStatusOperator | undefined;
                } | undefined;
                filterDate?: {
                    value?: Date | undefined;
                    operator?: FilterDateOperator | undefined;
                } | undefined;
                filterArray?: {
                    value?: string | undefined;
                    operator?: FilterArrayOperator | undefined;
                } | undefined;
                filterDuration?: {
                    value?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    operator?: FilterDurationOperator | undefined;
                } | undefined;
            }[] | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_33 in Exclude<keyof I_1, "or">]: never; }>(object: I_1): Filters;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};

export { DeepPartial, Exact, FilterField, FilterStatus, Filters, FiltersAnd, protobufPackage };
