import { Operation, Document, Fragment, SelectionSetFragmentSpread, SelectionSetFieldNode, SelectionSetInlineFragment, SelectionSetItem } from 'graphql-codegen-core'; export interface FlattenOperation extends Operation { innerModels: FlattenModel[]; isFlatten: boolean; } export interface FlattenFragment extends Fragment { innerModels: FlattenModel[]; isFlatten: boolean; } export interface FlattenDocument extends Document { operations: FlattenOperation[]; fragments: FlattenFragment[]; hasFragments: boolean; hasOperations: boolean; } export interface FlattenModel { schemaBaseType: string; modelType: string; fields: SelectionSetFieldNode[]; fragmentsSpread: SelectionSetFragmentSpread[]; inlineFragments: SelectionSetInlineFragment[]; hasFragmentsSpread: boolean; hasFields: boolean; hasInlineFragments: boolean; hasTypename: boolean; } export declare const handleNameDuplications: (name: string, existing: FlattenModel[]) => string; export declare function flattenSelectionSet(selectionSet: SelectionSetItem[], result?: FlattenModel[]): FlattenModel[]; export declare function flattenTypes(document: Document): FlattenDocument;