/**
 * GraphQL Resolvers for OAuth Core
 */
import type { RegistrationInput, SendMagicLinkInput, RegistrationResponse, MagicLinkResponse, ExtendedOAuthAdapters, MagicLinkConfig } from '../types/ServiceTypes';
export interface ASTNode {
    kind: string;
    value?: string | number | boolean;
    fields?: Array<{
        name: {
            value: string;
        };
        value: ASTNode;
    }>;
    values?: ASTNode[];
}
/**
 * Context interface for GraphQL resolvers
 */
export interface GraphQLContext {
    adapters: ExtendedOAuthAdapters;
    magicLinkConfig: MagicLinkConfig;
}
/**
 * GraphQL resolvers
 */
export declare const resolvers: {
    Query: {
        _empty: () => string;
    };
    Mutation: {
        /**
         * Register a new user
         */
        register: (_parent: unknown, { input }: {
            input: RegistrationInput;
        }, context: GraphQLContext) => Promise<RegistrationResponse>;
        /**
         * Send a magic link to the specified email
         */
        sendMagicLink: (_parent: unknown, { input }: {
            input: SendMagicLinkInput;
        }, context: GraphQLContext) => Promise<MagicLinkResponse>;
    };
    JSON: {
        serialize: (value: unknown) => unknown;
        parseValue: (value: unknown) => unknown;
        parseLiteral: (ast: ASTNode) => unknown;
    };
};
/**
 * Type definitions for resolver arguments
 */
export interface ResolverArgs {
    register: {
        input: RegistrationInput;
    };
    sendMagicLink: {
        input: SendMagicLinkInput;
    };
}
/**
 * Helper function to create GraphQL context
 */
export declare function createGraphQLContext(adapters: ExtendedOAuthAdapters, magicLinkConfig: MagicLinkConfig): GraphQLContext;
/**
 * Validation helpers for resolvers
 */
export declare const validationHelpers: {
    /**
     * Validate that required context is present
     */
    validateContext(context: GraphQLContext): void;
    /**
     * Sanitize error messages for client consumption
     */
    sanitizeError(error: unknown): {
        message: string;
        code: string;
    };
};
//# sourceMappingURL=resolvers.d.ts.map