import "./interfaces.ts"; export type { GraphileConfig }; export { orderedApply } from "./functionality.ts"; export type { HookObject, PluginHook, PluginHookObject } from "./hooks.ts"; export { applyHooks, AsyncHooks } from "./hooks.ts"; export type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, } from "./interfaces.ts"; export type { MiddlewareHandlers, MiddlewareNext } from "./middleware.ts"; export { Middleware } from "./middleware.ts"; export { isResolvedPreset, resolvePreset, resolvePresets, } from "./resolvePresets.ts"; export declare function sortedPlugins(plugins: ReadonlyArray | undefined): GraphileConfig.Plugin[]; declare global { namespace GraphileConfig { interface Lib { versions: Record; } /** * Expand this through declaration merging to get TypeScript * auto-completion of plugin names in the relevant places. */ interface Plugins { [key: string & {}]: true; } /** * Expand this through declaration merging to get TypeScript * auto-completion of things that plugins can provide. */ interface Provides { [key: string & {}]: true; } interface Plugin { name: keyof GraphileConfig.Plugins; version?: string; experimental?: boolean; description?: string; provides?: (keyof GraphileConfig.Plugins | keyof GraphileConfig.Provides)[]; after?: (keyof GraphileConfig.Plugins | keyof GraphileConfig.Provides)[]; before?: (keyof GraphileConfig.Plugins | keyof GraphileConfig.Provides)[]; } /** * A Graphile Config Preset that can be combined with other presets to * ultimately build a resolved preset: a combination of plugins and * configuration options to be used by the various Graphile tools. */ interface Preset { extends?: ReadonlyArray; plugins?: ReadonlyArray; disablePlugins?: ReadonlyArray; lib?: Partial; appendPlugins?: never; prependPlugins?: never; skipPlugins?: never; } /** * The result of `resolvePreset(preset)` on a preset - compatible with * `Preset` but guaranteed to not extend from other presets (and a few * other assertions). */ interface ResolvedPreset extends Preset { extends?: never; plugins: ReadonlyArray; disablePlugins: ReadonlyArray; lib: GraphileConfig.Lib; } } } //# sourceMappingURL=index.d.ts.map