import { GraphQLEnumType } from 'graphql'; import type { Field } from '../model/implementation/field.js'; import type { ObjectType } from '../model/implementation/type.js'; import type { QueryNode } from '../query-tree/base.js'; import { OrderClause, OrderDirection } from '../query-tree/lists.js'; export declare class OrderByEnumType { readonly objectType: ObjectType; readonly values: ReadonlyArray; constructor(objectType: ObjectType, values: ReadonlyArray); get name(): string; private get valueMap(); getValue(name: string): OrderByEnumValue | undefined; getValueOrThrow(name: string): OrderByEnumValue; getEnumType(): GraphQLEnumType; } export declare class OrderByEnumValue { readonly path: ReadonlyArray; readonly direction: OrderDirection; readonly rootEntityDepth?: number | undefined; constructor(path: ReadonlyArray, direction: OrderDirection, rootEntityDepth?: number | undefined); get underscoreSeparatedPath(): string; get name(): string; get lastSegment(): Field; get deprecationReason(): string | undefined; getValueNode(itemNode: QueryNode): QueryNode; getClause(itemNode: QueryNode): OrderClause; } export interface OrderByEnumGeneratorConfig { readonly maxRootEntityDepth?: number; } export declare class OrderByEnumGenerator { private readonly config; constructor(config?: OrderByEnumGeneratorConfig); /** * Generate the OrderBy type for an object type, or undefined if has not any fields to order by */ generate(objectType: ObjectType): OrderByEnumType | undefined; private getValues; private getValuesForField; }