import { ASTNode, DefinitionNode, DirectiveNode, NamedTypeNode } from 'graphql'; import GRef, { HasGref } from './gref'; export declare const ErrNoDefinition: (gref: GRef, ...nodes: ASTNode[]) => import("./error").GraphQLErrorExt<"NoDefinition"> & { message: string; gref: GRef; nodes: ASTNode[]; }; export declare type De = T extends (infer E)[] ? De[] : T extends Locatable ? { [K in keyof T]: K extends 'kind' | 'loc' ? T[K] : De; } & HasGref : T extends object ? { [K in keyof T]: K extends 'kind' | 'loc' ? T[K] : De; } : T; export declare type Def = De | Redirect; export declare type Defs = Iterable; export interface Redirect { code: 'Redirect'; gref: GRef; toGref: GRef; via: DirectiveNode; } export declare const isRedirect: (o: any) => o is Redirect; export declare type Locatable = DefinitionNode | DirectiveNode | NamedTypeNode; export declare type Located = Locatable & HasGref; export declare function fill(source: Defs, atlas?: Defs): Defs; export declare function refNodesIn(defs: Defs | Iterable): Iterable; export declare const deepRefs: (root: ASTNode | ASTNode[]) => Iterable; declare type ChildOf = T extends (infer E)[] ? E : T extends object ? { [k in keyof T]: T[k] extends (infer E)[] ? E : T[k]; }[keyof T] : T; export declare function children(root: T): Iterable>; export declare const hasRef: (o?: any) => o is HasGref; export declare function isLocatable(o: any): o is Locatable; export declare function isLocated(o: any): o is Located; export {}; //# sourceMappingURL=de.d.ts.map