import { type MockObject } from "@newmo/graphql-fake-core";
import type { GraphQLSchema } from "graphql/index.js";
import type { RequiredFakeServerConfig } from "./config.js";
import { type LogLevel } from "./logger.js";
export type CreateFakeServerOptions = RequiredFakeServerConfig & {
    logLevel?: LogLevel;
    allowedCORSOrigins: string[];
};
type FakeServerInternal = {
    mockObject: MockObject;
    schema: GraphQLSchema;
    ports: {
        fakeServer: number;
        apolloServer: number;
    };
    maxQueryDepth: number;
    maxFieldRecursionDepth: number;
    maxRegisteredSequences: number;
    logLevel: LogLevel;
    allowedCORSOrigins: string[];
};
export type RegisterSequenceNetworkError = {
    type: "network-error";
    operationName: string;
    responseStatusCode: number;
    errors: Record<string, unknown>[];
};
export type RegisterSequenceOperation = {
    type: "operation";
    operationName: string;
    data: Record<string, unknown>;
};
export type RegisterSequenceOptions = RegisterSequenceNetworkError | RegisterSequenceOperation;
export type CalledResult = {
    requestTimestamp: number;
    request: {
        headers: Record<string, unknown>;
        body: Record<string, unknown>;
    };
    response: {
        status: number;
        headers: Record<string, unknown>;
        body: Record<string, unknown>;
    };
};
export type CalledResultResponse = {
    ok: true;
    data: CalledResult[];
};
export type RegisterOperationResponse = {
    ok: true;
} | {
    ok: false;
    errors: string[];
};
export declare const createFakeServer: (options: CreateFakeServerOptions) => Promise<{
    start: () => Promise<{
        urls: {
            fakeServer: string;
            apolloServer: string;
        };
    }>;
    stop: () => void;
}>;
export declare const createFakeServerInternal: (options: FakeServerInternal) => Promise<{
    start: () => Promise<{
        urls: {
            fakeServer: string;
            apolloServer: string;
        };
    }>;
    stop: () => void;
}>;
export {};
//# sourceMappingURL=server.d.ts.map