import { Filters, FilterField } from './partitions_filters.mjs';
import { FilterStringOperator, FilterNumberOperator, FilterBooleanOperator, FilterArrayOperator, FilterString, FilterNumber, FilterBoolean, FilterArray } from './filters_common.mjs';
import { PartitionRawEnumField, PartitionField } from './partitions_fields.mjs';
import _m0 from 'protobufjs/minimal.js';
import { SortDirection } from './sort_direction.mjs';
import './google/protobuf/duration.mjs';

declare const protobufPackage = "armonik.api.grpc.v1.partitions";
/**
 * A raw partition object.
 *
 * Used when a list or a single partition is returned.
 */
interface PartitionRaw {
    /** The partition ID. */
    id: string;
    /** The parent partition IDs. */
    parentPartitionIds: string[];
    /** Whether the partition is reserved for pods. */
    podReserved: number;
    /** The maximum number of pods that can be used by sessions using the partition. */
    podMax: number;
    /** The pod configuration. */
    podConfiguration: {
        [key: string]: string;
    };
    /** The percentage of the partition that can be preempted. */
    preemptionPercentage: number;
    /** The priority of the partition. */
    priority: number;
}
declare const PartitionRaw: {
    encode(message: PartitionRaw, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PartitionRaw;
    fromJSON(object: any): PartitionRaw;
    toJSON(message: PartitionRaw): unknown;
    create<I extends {
        id?: string | undefined;
        parentPartitionIds?: string[] | undefined;
        podReserved?: number | undefined;
        podMax?: number | undefined;
        podConfiguration?: {
            [x: string]: string | undefined;
        } | undefined;
        preemptionPercentage?: number | undefined;
        priority?: number | undefined;
    } & {
        id?: string | undefined;
        parentPartitionIds?: (string[] & string[] & { [K in Exclude<keyof I["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
        podReserved?: number | undefined;
        podMax?: number | undefined;
        podConfiguration?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & { [K_1 in Exclude<keyof I["podConfiguration"], string | number>]: never; }) | undefined;
        preemptionPercentage?: number | undefined;
        priority?: number | undefined;
    } & { [K_2 in Exclude<keyof I, keyof PartitionRaw>]: never; }>(base?: I | undefined): PartitionRaw;
    fromPartial<I_1 extends {
        id?: string | undefined;
        parentPartitionIds?: string[] | undefined;
        podReserved?: number | undefined;
        podMax?: number | undefined;
        podConfiguration?: {
            [x: string]: string | undefined;
        } | undefined;
        preemptionPercentage?: number | undefined;
        priority?: number | undefined;
    } & {
        id?: string | undefined;
        parentPartitionIds?: (string[] & string[] & { [K_3 in Exclude<keyof I_1["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
        podReserved?: number | undefined;
        podMax?: number | undefined;
        podConfiguration?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & { [K_4 in Exclude<keyof I_1["podConfiguration"], string | number>]: never; }) | undefined;
        preemptionPercentage?: number | undefined;
        priority?: number | undefined;
    } & { [K_5 in Exclude<keyof I_1, keyof PartitionRaw>]: never; }>(object: I_1): PartitionRaw;
};
interface PartitionRaw_PodConfigurationEntry {
    key: string;
    value: string;
}
declare const PartitionRaw_PodConfigurationEntry: {
    encode(message: PartitionRaw_PodConfigurationEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PartitionRaw_PodConfigurationEntry;
    fromJSON(object: any): PartitionRaw_PodConfigurationEntry;
    toJSON(message: PartitionRaw_PodConfigurationEntry): unknown;
    create<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & { [K in Exclude<keyof I, keyof PartitionRaw_PodConfigurationEntry>]: never; }>(base?: I | undefined): PartitionRaw_PodConfigurationEntry;
    fromPartial<I_1 extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & { [K_1 in Exclude<keyof I_1, keyof PartitionRaw_PodConfigurationEntry>]: never; }>(object: I_1): PartitionRaw_PodConfigurationEntry;
};
/** Request to list partitions. */
interface ListPartitionsRequest {
    /** The page number. Start at 0. */
    page: number;
    /** The number of items per page. */
    pageSize: number;
    /** The filter. */
    filters: Filters | undefined;
    /**
     * The sort.
     *
     * Must be set for every request.
     */
    sort: ListPartitionsRequest_Sort | undefined;
}
declare const ListPartitionsRequest: {
    encode(message: ListPartitionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListPartitionsRequest;
    fromJSON(object: any): ListPartitionsRequest;
    toJSON(message: ListPartitionsRequest): unknown;
    create<I extends {
        page?: number | undefined;
        pageSize?: number | undefined;
        filters?: {
            or?: {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] | undefined;
        } | undefined;
        sort?: {
            field?: {
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } | undefined;
            direction?: SortDirection | undefined;
        } | undefined;
    } & {
        page?: number | undefined;
        pageSize?: number | undefined;
        filters?: ({
            or?: {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] | undefined;
        } & {
            or?: ({
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] & ({
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            } & {
                and?: ({
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] & ({
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                } & {
                    field?: ({
                        partitionRawField?: {
                            field?: PartitionRawEnumField | undefined;
                        } | undefined;
                    } & {
                        partitionRawField?: ({
                            field?: PartitionRawEnumField | undefined;
                        } & {
                            field?: PartitionRawEnumField | undefined;
                        } & { [K in Exclude<keyof I["filters"]["or"][number]["and"][number]["field"]["partitionRawField"], "field">]: never; }) | undefined;
                    } & { [K_1 in Exclude<keyof I["filters"]["or"][number]["and"][number]["field"], "partitionRawField">]: never; }) | undefined;
                    filterString?: ({
                        value?: string | undefined;
                        operator?: FilterStringOperator | undefined;
                    } & {
                        value?: string | undefined;
                        operator?: FilterStringOperator | undefined;
                    } & { [K_2 in Exclude<keyof I["filters"]["or"][number]["and"][number]["filterString"], keyof FilterString>]: never; }) | undefined;
                    filterNumber?: ({
                        value?: number | undefined;
                        operator?: FilterNumberOperator | undefined;
                    } & {
                        value?: number | undefined;
                        operator?: FilterNumberOperator | undefined;
                    } & { [K_3 in Exclude<keyof I["filters"]["or"][number]["and"][number]["filterNumber"], keyof FilterNumber>]: never; }) | undefined;
                    filterBoolean?: ({
                        value?: boolean | undefined;
                        operator?: FilterBooleanOperator | undefined;
                    } & {
                        value?: boolean | undefined;
                        operator?: FilterBooleanOperator | undefined;
                    } & { [K_4 in Exclude<keyof I["filters"]["or"][number]["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
                    filterArray?: ({
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } & {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } & { [K_5 in Exclude<keyof I["filters"]["or"][number]["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
                } & { [K_6 in Exclude<keyof I["filters"]["or"][number]["and"][number], keyof FilterField>]: never; })[] & { [K_7 in Exclude<keyof I["filters"]["or"][number]["and"], keyof {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[]>]: never; }) | undefined;
            } & { [K_8 in Exclude<keyof I["filters"]["or"][number], "and">]: never; })[] & { [K_9 in Exclude<keyof I["filters"]["or"], keyof {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[]>]: never; }) | undefined;
        } & { [K_10 in Exclude<keyof I["filters"], "or">]: never; }) | undefined;
        sort?: ({
            field?: {
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } | undefined;
            direction?: SortDirection | undefined;
        } & {
            field?: ({
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } & {
                partitionRawField?: ({
                    field?: PartitionRawEnumField | undefined;
                } & {
                    field?: PartitionRawEnumField | undefined;
                } & { [K_11 in Exclude<keyof I["sort"]["field"]["partitionRawField"], "field">]: never; }) | undefined;
            } & { [K_12 in Exclude<keyof I["sort"]["field"], "partitionRawField">]: never; }) | undefined;
            direction?: SortDirection | undefined;
        } & { [K_13 in Exclude<keyof I["sort"], keyof ListPartitionsRequest_Sort>]: never; }) | undefined;
    } & { [K_14 in Exclude<keyof I, keyof ListPartitionsRequest>]: never; }>(base?: I | undefined): ListPartitionsRequest;
    fromPartial<I_1 extends {
        page?: number | undefined;
        pageSize?: number | undefined;
        filters?: {
            or?: {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] | undefined;
        } | undefined;
        sort?: {
            field?: {
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } | undefined;
            direction?: SortDirection | undefined;
        } | undefined;
    } & {
        page?: number | undefined;
        pageSize?: number | undefined;
        filters?: ({
            or?: {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] | undefined;
        } & {
            or?: ({
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[] & ({
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            } & {
                and?: ({
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] & ({
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                } & {
                    field?: ({
                        partitionRawField?: {
                            field?: PartitionRawEnumField | undefined;
                        } | undefined;
                    } & {
                        partitionRawField?: ({
                            field?: PartitionRawEnumField | undefined;
                        } & {
                            field?: PartitionRawEnumField | undefined;
                        } & { [K_15 in Exclude<keyof I_1["filters"]["or"][number]["and"][number]["field"]["partitionRawField"], "field">]: never; }) | undefined;
                    } & { [K_16 in Exclude<keyof I_1["filters"]["or"][number]["and"][number]["field"], "partitionRawField">]: never; }) | undefined;
                    filterString?: ({
                        value?: string | undefined;
                        operator?: FilterStringOperator | undefined;
                    } & {
                        value?: string | undefined;
                        operator?: FilterStringOperator | undefined;
                    } & { [K_17 in Exclude<keyof I_1["filters"]["or"][number]["and"][number]["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["filters"]["or"][number]["and"][number]["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["filters"]["or"][number]["and"][number]["filterBoolean"], keyof FilterBoolean>]: never; }) | undefined;
                    filterArray?: ({
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } & {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } & { [K_20 in Exclude<keyof I_1["filters"]["or"][number]["and"][number]["filterArray"], keyof FilterArray>]: never; }) | undefined;
                } & { [K_21 in Exclude<keyof I_1["filters"]["or"][number]["and"][number], keyof FilterField>]: never; })[] & { [K_22 in Exclude<keyof I_1["filters"]["or"][number]["and"], keyof {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[]>]: never; }) | undefined;
            } & { [K_23 in Exclude<keyof I_1["filters"]["or"][number], "and">]: never; })[] & { [K_24 in Exclude<keyof I_1["filters"]["or"], keyof {
                and?: {
                    field?: {
                        partitionRawField?: {
                            field?: PartitionRawEnumField | 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;
                    filterArray?: {
                        value?: string | undefined;
                        operator?: FilterArrayOperator | undefined;
                    } | undefined;
                }[] | undefined;
            }[]>]: never; }) | undefined;
        } & { [K_25 in Exclude<keyof I_1["filters"], "or">]: never; }) | undefined;
        sort?: ({
            field?: {
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } | undefined;
            direction?: SortDirection | undefined;
        } & {
            field?: ({
                partitionRawField?: {
                    field?: PartitionRawEnumField | undefined;
                } | undefined;
            } & {
                partitionRawField?: ({
                    field?: PartitionRawEnumField | undefined;
                } & {
                    field?: PartitionRawEnumField | undefined;
                } & { [K_26 in Exclude<keyof I_1["sort"]["field"]["partitionRawField"], "field">]: never; }) | undefined;
            } & { [K_27 in Exclude<keyof I_1["sort"]["field"], "partitionRawField">]: never; }) | undefined;
            direction?: SortDirection | undefined;
        } & { [K_28 in Exclude<keyof I_1["sort"], keyof ListPartitionsRequest_Sort>]: never; }) | undefined;
    } & { [K_29 in Exclude<keyof I_1, keyof ListPartitionsRequest>]: never; }>(object: I_1): ListPartitionsRequest;
};
/** Represents the sort object. */
interface ListPartitionsRequest_Sort {
    /** The field to sort on. */
    field: PartitionField | undefined;
    /** The sort direction. */
    direction: SortDirection;
}
declare const ListPartitionsRequest_Sort: {
    encode(message: ListPartitionsRequest_Sort, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListPartitionsRequest_Sort;
    fromJSON(object: any): ListPartitionsRequest_Sort;
    toJSON(message: ListPartitionsRequest_Sort): unknown;
    create<I extends {
        field?: {
            partitionRawField?: {
                field?: PartitionRawEnumField | undefined;
            } | undefined;
        } | undefined;
        direction?: SortDirection | undefined;
    } & {
        field?: ({
            partitionRawField?: {
                field?: PartitionRawEnumField | undefined;
            } | undefined;
        } & {
            partitionRawField?: ({
                field?: PartitionRawEnumField | undefined;
            } & {
                field?: PartitionRawEnumField | undefined;
            } & { [K in Exclude<keyof I["field"]["partitionRawField"], "field">]: never; }) | undefined;
        } & { [K_1 in Exclude<keyof I["field"], "partitionRawField">]: never; }) | undefined;
        direction?: SortDirection | undefined;
    } & { [K_2 in Exclude<keyof I, keyof ListPartitionsRequest_Sort>]: never; }>(base?: I | undefined): ListPartitionsRequest_Sort;
    fromPartial<I_1 extends {
        field?: {
            partitionRawField?: {
                field?: PartitionRawEnumField | undefined;
            } | undefined;
        } | undefined;
        direction?: SortDirection | undefined;
    } & {
        field?: ({
            partitionRawField?: {
                field?: PartitionRawEnumField | undefined;
            } | undefined;
        } & {
            partitionRawField?: ({
                field?: PartitionRawEnumField | undefined;
            } & {
                field?: PartitionRawEnumField | undefined;
            } & { [K_3 in Exclude<keyof I_1["field"]["partitionRawField"], "field">]: never; }) | undefined;
        } & { [K_4 in Exclude<keyof I_1["field"], "partitionRawField">]: never; }) | undefined;
        direction?: SortDirection | undefined;
    } & { [K_5 in Exclude<keyof I_1, keyof ListPartitionsRequest_Sort>]: never; }>(object: I_1): ListPartitionsRequest_Sort;
};
/**
 * Response to list partitions.
 *
 * Use pagination, filtering and sorting from the request.
 * Retunr a list of raw partitions.
 */
interface ListPartitionsResponse {
    /** The list of raw partitions. */
    partitions: PartitionRaw[];
    /** The page number. Start at 0. */
    page: number;
    /** The page size. */
    pageSize: number;
    /** The total number of partitions. */
    total: number;
}
declare const ListPartitionsResponse: {
    encode(message: ListPartitionsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListPartitionsResponse;
    fromJSON(object: any): ListPartitionsResponse;
    toJSON(message: ListPartitionsResponse): unknown;
    create<I extends {
        partitions?: {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[] | undefined;
        page?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    } & {
        partitions?: ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[] & ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & {
            id?: string | undefined;
            parentPartitionIds?: (string[] & string[] & { [K in Exclude<keyof I["partitions"][number]["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & { [K_1 in Exclude<keyof I["partitions"][number]["podConfiguration"], string | number>]: never; }) | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & { [K_2 in Exclude<keyof I["partitions"][number], keyof PartitionRaw>]: never; })[] & { [K_3 in Exclude<keyof I["partitions"], keyof {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[]>]: never; }) | undefined;
        page?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    } & { [K_4 in Exclude<keyof I, keyof ListPartitionsResponse>]: never; }>(base?: I | undefined): ListPartitionsResponse;
    fromPartial<I_1 extends {
        partitions?: {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[] | undefined;
        page?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    } & {
        partitions?: ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[] & ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & {
            id?: string | undefined;
            parentPartitionIds?: (string[] & string[] & { [K_5 in Exclude<keyof I_1["partitions"][number]["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & { [K_6 in Exclude<keyof I_1["partitions"][number]["podConfiguration"], string | number>]: never; }) | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & { [K_7 in Exclude<keyof I_1["partitions"][number], keyof PartitionRaw>]: never; })[] & { [K_8 in Exclude<keyof I_1["partitions"], keyof {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        }[]>]: never; }) | undefined;
        page?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    } & { [K_9 in Exclude<keyof I_1, keyof ListPartitionsResponse>]: never; }>(object: I_1): ListPartitionsResponse;
};
/** Request to get a partition. */
interface GetPartitionRequest {
    /** The partition ID. */
    id: string;
}
declare const GetPartitionRequest: {
    encode(message: GetPartitionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetPartitionRequest;
    fromJSON(object: any): GetPartitionRequest;
    toJSON(message: GetPartitionRequest): unknown;
    create<I extends {
        id?: string | undefined;
    } & {
        id?: string | undefined;
    } & { [K in Exclude<keyof I, "id">]: never; }>(base?: I | undefined): GetPartitionRequest;
    fromPartial<I_1 extends {
        id?: string | undefined;
    } & {
        id?: string | undefined;
    } & { [K_1 in Exclude<keyof I_1, "id">]: never; }>(object: I_1): GetPartitionRequest;
};
/**
 * Response to get a partition.
 *
 * Return a raw partition.
 */
interface GetPartitionResponse {
    /** The raw partition. */
    partition: PartitionRaw | undefined;
}
declare const GetPartitionResponse: {
    encode(message: GetPartitionResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetPartitionResponse;
    fromJSON(object: any): GetPartitionResponse;
    toJSON(message: GetPartitionResponse): unknown;
    create<I extends {
        partition?: {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } | undefined;
    } & {
        partition?: ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & {
            id?: string | undefined;
            parentPartitionIds?: (string[] & string[] & { [K in Exclude<keyof I["partition"]["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & { [K_1 in Exclude<keyof I["partition"]["podConfiguration"], string | number>]: never; }) | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & { [K_2 in Exclude<keyof I["partition"], keyof PartitionRaw>]: never; }) | undefined;
    } & { [K_3 in Exclude<keyof I, "partition">]: never; }>(base?: I | undefined): GetPartitionResponse;
    fromPartial<I_1 extends {
        partition?: {
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } | undefined;
    } & {
        partition?: ({
            id?: string | undefined;
            parentPartitionIds?: string[] | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: {
                [x: string]: string | undefined;
            } | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & {
            id?: string | undefined;
            parentPartitionIds?: (string[] & string[] & { [K_4 in Exclude<keyof I_1["partition"]["parentPartitionIds"], keyof string[]>]: never; }) | undefined;
            podReserved?: number | undefined;
            podMax?: number | undefined;
            podConfiguration?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & { [K_5 in Exclude<keyof I_1["partition"]["podConfiguration"], string | number>]: never; }) | undefined;
            preemptionPercentage?: number | undefined;
            priority?: number | undefined;
        } & { [K_6 in Exclude<keyof I_1["partition"], keyof PartitionRaw>]: never; }) | undefined;
    } & { [K_7 in Exclude<keyof I_1, "partition">]: never; }>(object: I_1): GetPartitionResponse;
};
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, GetPartitionRequest, GetPartitionResponse, ListPartitionsRequest, ListPartitionsRequest_Sort, ListPartitionsResponse, PartitionRaw, PartitionRaw_PodConfigurationEntry, protobufPackage };
