/* eslint-disable */
import * as types from "./graphql";
import { TypedDocumentNode as DocumentNode } from "@graphql-typed-document-node/core";

/**
 * Map of all GraphQL operations in the project.
 *
 * This map has several performance disadvantages:
 * 1. It is not tree-shakeable, so it will include all operations in the project.
 * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.
 * 3. It does not support dead code elimination, so it will add unused operations.
 *
 * Therefore it is highly recommended to use the babel or swc plugin for production.
 */
const documents = {
  "\n  query RequestsByApiKey($apiKeyId: ID, $skip: Int) {\n    requests(where: { apiKeyId: $apiKeyId }, options: { skip: $skip }) {\n      requests {\n        id\n        callType\n        url\n        method\n        timestamp\n        response {\n          id\n          statusCode\n          timestamp\n        }\n      }\n    }\n  }\n":
    types.RequestsByApiKeyDocument,
  "\n  mutation RequestMutation($email: String!, $password: String!) {\n    userRegistrationRequest(input: { email: $email, password: $password }) {\n      success\n      message\n    }\n  }\n":
    types.RequestMutationDocument,
  "\n  mutation CallbackMutation($registrationToken: String!) {\n    userRegistrationCallback(input: { registrationToken: $registrationToken }) {\n      success\n      message\n      accessToken\n      refreshToken\n    }\n  }\n":
    types.CallbackMutationDocument,
  "query AllApiKeysQuery($where: ProjectApiKeysWhere) {\n  apiKeys(where: $where) {\n    message\n    success\n    keys {\n      id\n      name\n      key\n      project {\n        id\n        name\n      }\n      requests {\n        id\n      }\n    }\n  }\n}":
    types.AllApiKeysQueryDocument,
  "mutation CreateProjectApiKeyMutation($input: CreateProjectApiKeyInput!) {\n  createProjectApiKey(input: $input) {\n    message\n    success\n    projectApiKey {\n      id\n      key\n      name\n    }\n  }\n}":
    types.CreateProjectApiKeyMutationDocument,
  "query MeQuery {\n  me {\n    success\n    message\n    user {\n      id\n      email\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n      }\n    }\n  }\n}":
    types.MeQueryDocument,
  "\n  mutation RefreshTokenMutation($refreshToken: String!) {\n    refreshToken(input: { refreshToken: $refreshToken }) {\n      success\n      message\n      accessToken\n    }\n  }\n":
    types.RefreshTokenMutationDocument,
  "mutation UserLoginMutation($email: String!, $password: String!) {\n  userLogin(input: {email: $email, password: $password}) {\n    success\n    message\n    accessToken\n    refreshToken\n  }\n}":
    types.UserLoginMutationDocument,
  "\n  mutation UserPasswordResetCallbackMutation(\n    $input: UserPasswordResetCallbackInput!\n  ) {\n    userPasswordResetCallback(input: $input) {\n      success\n      message\n    }\n  }\n":
    types.UserPasswordResetCallbackMutationDocument,
  "\n  mutation UserPasswordResetRequestMutation(\n    $input: UserPasswordResetRequestbackInput!\n  ) {\n    userPasswordResetRequest(input: $input) {\n      success\n      message\n    }\n  }\n":
    types.UserPasswordResetRequestMutationDocument,
  "\n  mutation CreateCompanyMutation($input: CreateCompanyInput!) {\n    createCompany(input: $input) {\n      success\n      message\n      company {\n        id\n        name\n      }\n    }\n  }\n":
    types.CreateCompanyMutationDocument,
  "query AllProjectsQuery($where: ProjectsWhere, $dateRange: DateTimeInput!) {\n  projects(where: $where) {\n    message\n    success\n    projects {\n      id\n      name\n      apiKeys {\n        id\n        key\n        name\n        requests {\n          id\n        }\n      }\n      aggregate {\n        apiKeyCount\n        requestCount(options: $dateRange)\n        averageRequestExecutionTime(options: $dateRange)\n        averageContentLength(options: $dateRange)\n      }\n    }\n  }\n}":
    types.AllProjectsQueryDocument,
  "mutation CreateProjectMutation($input: CreateProjectInput!) {\n  createProject(input: $input) {\n    success\n    message\n    project {\n      id\n      name\n    }\n  }\n}":
    types.CreateProjectMutationDocument,
  "\n  mutation AddCompanyMemberMutation($companyId: String!, $userEmail: String!) {\n    addCompanyMember(input: { companyId: $companyId, userEmail: $userEmail }) {\n      success\n      message\n    }\n  }\n":
    types.AddCompanyMemberMutationDocument,
  "\n  query ApiKeyQuery($id: ID, $projectId: ID) {\n    apiKeys(where: { id: $id, projectId: $projectId }) {\n      keys {\n        id\n        name\n        key\n      }\n    }\n  }\n":
    types.ApiKeyQueryDocument,
  "\n  query CompanyQuery($id: String!, $dateRange: DateTimeInput!) {\n    companies(where: { id: $id }) {\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n        aggregate {\n          projectCount\n          requestCount(options: $dateRange)\n          averageRequestExecutionTime(options: $dateRange)\n          averageContentLength(options: $dateRange)\n        }\n      }\n    }\n  }\n":
    types.CompanyQueryDocument,
  "\n  query RequestQuery($id: ID) {\n    requests(where: { id: $id }) {\n      success\n      message\n      requests {\n        id\n        callType\n        url\n        method\n        body\n        headers\n        timestamp\n        response {\n          id\n          statusCode\n          body\n          headers\n          timestamp\n        }\n      }\n    }\n  }\n":
    types.RequestQueryDocument,
};

/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 *
 *
 * @example
 * ```ts
 * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
 * ```
 *
 * The query argument is unknown!
 * Please regenerate the types.
 */
export function graphql(source: string): unknown;

/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  query RequestsByApiKey($apiKeyId: ID, $skip: Int) {\n    requests(where: { apiKeyId: $apiKeyId }, options: { skip: $skip }) {\n      requests {\n        id\n        callType\n        url\n        method\n        timestamp\n        response {\n          id\n          statusCode\n          timestamp\n        }\n      }\n    }\n  }\n",
): (typeof documents)["\n  query RequestsByApiKey($apiKeyId: ID, $skip: Int) {\n    requests(where: { apiKeyId: $apiKeyId }, options: { skip: $skip }) {\n      requests {\n        id\n        callType\n        url\n        method\n        timestamp\n        response {\n          id\n          statusCode\n          timestamp\n        }\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation RequestMutation($email: String!, $password: String!) {\n    userRegistrationRequest(input: { email: $email, password: $password }) {\n      success\n      message\n    }\n  }\n",
): (typeof documents)["\n  mutation RequestMutation($email: String!, $password: String!) {\n    userRegistrationRequest(input: { email: $email, password: $password }) {\n      success\n      message\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation CallbackMutation($registrationToken: String!) {\n    userRegistrationCallback(input: { registrationToken: $registrationToken }) {\n      success\n      message\n      accessToken\n      refreshToken\n    }\n  }\n",
): (typeof documents)["\n  mutation CallbackMutation($registrationToken: String!) {\n    userRegistrationCallback(input: { registrationToken: $registrationToken }) {\n      success\n      message\n      accessToken\n      refreshToken\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "query AllApiKeysQuery($where: ProjectApiKeysWhere) {\n  apiKeys(where: $where) {\n    message\n    success\n    keys {\n      id\n      name\n      key\n      project {\n        id\n        name\n      }\n      requests {\n        id\n      }\n    }\n  }\n}",
): (typeof documents)["query AllApiKeysQuery($where: ProjectApiKeysWhere) {\n  apiKeys(where: $where) {\n    message\n    success\n    keys {\n      id\n      name\n      key\n      project {\n        id\n        name\n      }\n      requests {\n        id\n      }\n    }\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "mutation CreateProjectApiKeyMutation($input: CreateProjectApiKeyInput!) {\n  createProjectApiKey(input: $input) {\n    message\n    success\n    projectApiKey {\n      id\n      key\n      name\n    }\n  }\n}",
): (typeof documents)["mutation CreateProjectApiKeyMutation($input: CreateProjectApiKeyInput!) {\n  createProjectApiKey(input: $input) {\n    message\n    success\n    projectApiKey {\n      id\n      key\n      name\n    }\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "query MeQuery {\n  me {\n    success\n    message\n    user {\n      id\n      email\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n      }\n    }\n  }\n}",
): (typeof documents)["query MeQuery {\n  me {\n    success\n    message\n    user {\n      id\n      email\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n      }\n    }\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation RefreshTokenMutation($refreshToken: String!) {\n    refreshToken(input: { refreshToken: $refreshToken }) {\n      success\n      message\n      accessToken\n    }\n  }\n",
): (typeof documents)["\n  mutation RefreshTokenMutation($refreshToken: String!) {\n    refreshToken(input: { refreshToken: $refreshToken }) {\n      success\n      message\n      accessToken\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "mutation UserLoginMutation($email: String!, $password: String!) {\n  userLogin(input: {email: $email, password: $password}) {\n    success\n    message\n    accessToken\n    refreshToken\n  }\n}",
): (typeof documents)["mutation UserLoginMutation($email: String!, $password: String!) {\n  userLogin(input: {email: $email, password: $password}) {\n    success\n    message\n    accessToken\n    refreshToken\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation UserPasswordResetCallbackMutation(\n    $input: UserPasswordResetCallbackInput!\n  ) {\n    userPasswordResetCallback(input: $input) {\n      success\n      message\n    }\n  }\n",
): (typeof documents)["\n  mutation UserPasswordResetCallbackMutation(\n    $input: UserPasswordResetCallbackInput!\n  ) {\n    userPasswordResetCallback(input: $input) {\n      success\n      message\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation UserPasswordResetRequestMutation(\n    $input: UserPasswordResetRequestbackInput!\n  ) {\n    userPasswordResetRequest(input: $input) {\n      success\n      message\n    }\n  }\n",
): (typeof documents)["\n  mutation UserPasswordResetRequestMutation(\n    $input: UserPasswordResetRequestbackInput!\n  ) {\n    userPasswordResetRequest(input: $input) {\n      success\n      message\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation CreateCompanyMutation($input: CreateCompanyInput!) {\n    createCompany(input: $input) {\n      success\n      message\n      company {\n        id\n        name\n      }\n    }\n  }\n",
): (typeof documents)["\n  mutation CreateCompanyMutation($input: CreateCompanyInput!) {\n    createCompany(input: $input) {\n      success\n      message\n      company {\n        id\n        name\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "query AllProjectsQuery($where: ProjectsWhere, $dateRange: DateTimeInput!) {\n  projects(where: $where) {\n    message\n    success\n    projects {\n      id\n      name\n      apiKeys {\n        id\n        key\n        name\n        requests {\n          id\n        }\n      }\n      aggregate {\n        apiKeyCount\n        requestCount(options: $dateRange)\n        averageRequestExecutionTime(options: $dateRange)\n        averageContentLength(options: $dateRange)\n      }\n    }\n  }\n}",
): (typeof documents)["query AllProjectsQuery($where: ProjectsWhere, $dateRange: DateTimeInput!) {\n  projects(where: $where) {\n    message\n    success\n    projects {\n      id\n      name\n      apiKeys {\n        id\n        key\n        name\n        requests {\n          id\n        }\n      }\n      aggregate {\n        apiKeyCount\n        requestCount(options: $dateRange)\n        averageRequestExecutionTime(options: $dateRange)\n        averageContentLength(options: $dateRange)\n      }\n    }\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "mutation CreateProjectMutation($input: CreateProjectInput!) {\n  createProject(input: $input) {\n    success\n    message\n    project {\n      id\n      name\n    }\n  }\n}",
): (typeof documents)["mutation CreateProjectMutation($input: CreateProjectInput!) {\n  createProject(input: $input) {\n    success\n    message\n    project {\n      id\n      name\n    }\n  }\n}"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  mutation AddCompanyMemberMutation($companyId: String!, $userEmail: String!) {\n    addCompanyMember(input: { companyId: $companyId, userEmail: $userEmail }) {\n      success\n      message\n    }\n  }\n",
): (typeof documents)["\n  mutation AddCompanyMemberMutation($companyId: String!, $userEmail: String!) {\n    addCompanyMember(input: { companyId: $companyId, userEmail: $userEmail }) {\n      success\n      message\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  query ApiKeyQuery($id: ID, $projectId: ID) {\n    apiKeys(where: { id: $id, projectId: $projectId }) {\n      keys {\n        id\n        name\n        key\n      }\n    }\n  }\n",
): (typeof documents)["\n  query ApiKeyQuery($id: ID, $projectId: ID) {\n    apiKeys(where: { id: $id, projectId: $projectId }) {\n      keys {\n        id\n        name\n        key\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  query CompanyQuery($id: String!, $dateRange: DateTimeInput!) {\n    companies(where: { id: $id }) {\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n        aggregate {\n          projectCount\n          requestCount(options: $dateRange)\n          averageRequestExecutionTime(options: $dateRange)\n          averageContentLength(options: $dateRange)\n        }\n      }\n    }\n  }\n",
): (typeof documents)["\n  query CompanyQuery($id: String!, $dateRange: DateTimeInput!) {\n    companies(where: { id: $id }) {\n      companies {\n        id\n        name\n        users {\n          id\n          email\n        }\n        aggregate {\n          projectCount\n          requestCount(options: $dateRange)\n          averageRequestExecutionTime(options: $dateRange)\n          averageContentLength(options: $dateRange)\n        }\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(
  source: "\n  query RequestQuery($id: ID) {\n    requests(where: { id: $id }) {\n      success\n      message\n      requests {\n        id\n        callType\n        url\n        method\n        body\n        headers\n        timestamp\n        response {\n          id\n          statusCode\n          body\n          headers\n          timestamp\n        }\n      }\n    }\n  }\n",
): (typeof documents)["\n  query RequestQuery($id: ID) {\n    requests(where: { id: $id }) {\n      success\n      message\n      requests {\n        id\n        callType\n        url\n        method\n        body\n        headers\n        timestamp\n        response {\n          id\n          statusCode\n          body\n          headers\n          timestamp\n        }\n      }\n    }\n  }\n"];

export function graphql(source: string) {
  return (documents as any)[source] ?? {};
}

export type DocumentType<TDocumentNode extends DocumentNode<any, any>> =
  TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;
