import { GraphQLEnumType } from 'graphql'; import { Field, ObjectType } from '../model'; import { OrderClause, OrderDirection, QueryNode } from '../query-tree'; 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; }