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<MenuGroupingConfig, 'groups'> & {
    groups: IndexedMenuGroupConfig[];
};
export type IndexedMenuGroupConfig = Omit<MenuGroupConfig, 'items' | 'queries' | 'mutations' | 'subscriptions' | 'types' | 'directives'> & {
    items: IndexedTypeGroupConfig;
    queries: IndexedTypeGroupConfig;
    mutations: IndexedTypeGroupConfig;
    subscriptions: IndexedTypeGroupConfig;
    types: IndexedTypeGroupConfig;
    directives: IndexedTypeGroupConfig;
};
export interface IndexedTypeGroupConfig {
    includeByName: IndexedItemNameSpec;
    excludeByName: IndexedItemNameSpec;
}
export interface IndexedItemNameSpec {
    names: Set<string>;
    regexps: RegExp[];
}
