export interface MenuGroupingConfig { requireExactGroups: boolean; groups: MenuGroupConfig[]; otherItemsGroupName: string; } export interface MenuGroupConfig { name: string; items?: TypeGroupConfig; queries?: TypeGroupConfig; mutations?: TypeGroupConfig; subscriptions?: TypeGroupConfig; types?: TypeGroupConfig; directives?: TypeGroupConfig; } export interface TypeGroupConfig { includeByName?: ItemNameSpec[]; excludeByName?: ItemNameSpec[]; } export type ItemNameSpec = string | RegExp; export type IndexedMenuGroupingConfig = Omit & { groups: IndexedMenuGroupConfig[]; }; export type IndexedMenuGroupConfig = Omit & { items: IndexedTypeGroupConfig; queries: IndexedTypeGroupConfig; mutations: IndexedTypeGroupConfig; subscriptions: IndexedTypeGroupConfig; types: IndexedTypeGroupConfig; directives: IndexedTypeGroupConfig; }; export interface IndexedTypeGroupConfig { includeByName: IndexedItemNameSpec; excludeByName: IndexedItemNameSpec; } export interface IndexedItemNameSpec { names: Set; regexps: RegExp[]; }