import { FieldResolveInput, TypeRef } from 'stucco-js'; export interface ConfigOpts { stuccoJSONPath?: string; } export declare const config: ({ stuccoJSONPath, }?: ConfigOpts) => StuccoConfig; export declare const getResolverData: (input: FieldResolveInput, opts?: ConfigOpts) => ResolverConfig; export declare const getSchema: ({ schemaPath, }: { schemaPath?: string | undefined; }) => string; export declare const getReturnTypeName: (ref: TypeRef) => string | undefined; export declare const NewIntegration: (integration: IntegrationSpecificationInput) => IntegrationSpecificationInput; export interface Project extends StuccoConfig { integrations?: string[]; } export declare const NewProject: (project: Project) => Promise<{ resolvers: { [x: `${string}.${string}`]: ResolverConfig; }; }>; export type IntegrationResolverConfig = { resolve: { name: string; integration: string; }; data?: { [P in keyof T]: { value: T[P]; }; }; integration: 'gei'; }; export type ResolverConfig = { resolve: Resolve; } | IntegrationResolverConfig; export interface Resolve { name: string; } export interface StuccoConfig { resolvers: Resolvers; } export interface Resolvers { [x: `${string}.${string}`]: ResolverConfig; } export type IntegrationData = { name: string; description: string; value: string | string[]; required?: boolean; }; export type IntegrationSpecificationInputField = { name: string; description: string; data?: Record; handler: (input: FieldResolveInput) => unknown; }; export type IntegrationSpecificationInputType = { [fieldName: string]: IntegrationSpecificationInputField; }; export type IntegrationSpecificationInput = { [typeName: string]: IntegrationSpecificationInputType; }; export type IntegrationSpecificationField = Omit & {}; export declare let integrations: Record; export declare const findNodeModules: (at?: string) => string;