import { z } from "@hono/zod-openapi";

//#region src/validation/dolt-schemas.d.ts
declare const BranchNameSchema: z.ZodString;
declare const CreateBranchRequestSchema: z.ZodObject<{
  name: z.ZodString;
  fromBranch: z.ZodOptional<z.ZodString>;
  fromCommit: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BranchInfoSchema: z.ZodObject<{
  baseName: z.ZodString;
  fullName: z.ZodString;
  hash: z.ZodString;
}, z.core.$strip>;
declare const BranchResponseSchema: z.ZodObject<{
  data: z.ZodObject<{
    baseName: z.ZodString;
    fullName: z.ZodString;
    hash: z.ZodString;
  }, z.core.$strip>;
}, z.core.$strip>;
declare const BranchListResponseSchema: z.ZodObject<{
  data: z.ZodArray<z.ZodObject<{
    baseName: z.ZodString;
    fullName: z.ZodString;
    hash: z.ZodString;
  }, z.core.$strip>>;
}, z.core.$strip>;
declare const BranchNameParamsSchema: z.ZodObject<{
  tenantId: z.ZodString;
  projectId: z.ZodString;
  branchName: z.ZodString;
}, z.core.$strip>;
declare const ResolvedRefSchema: z.ZodObject<{
  type: z.ZodEnum<{
    commit: "commit";
    tag: "tag";
    branch: "branch";
  }>;
  name: z.ZodString;
  hash: z.ZodString;
}, z.core.$strip>;
declare const ConflictResolutionSchema: z.ZodObject<{
  table: z.ZodString;
  primaryKey: z.ZodRecord<z.ZodString, z.ZodString>;
  rowDefaultPick: z.ZodEnum<{
    ours: "ours";
    theirs: "theirs";
  }>;
  columns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
    ours: "ours";
    theirs: "theirs";
  }>>>;
}, z.core.$strip>;
declare const DiffSummaryItemSchema: z.ZodObject<{
  table: z.ZodString;
  diffType: z.ZodString;
  dataChange: z.ZodBoolean;
  schemaChange: z.ZodBoolean;
}, z.core.$strip>;
declare const ConflictItemSchema: z.ZodObject<{
  table: z.ZodString;
  primaryKey: z.ZodRecord<z.ZodString, z.ZodString>;
  ourDiffType: z.ZodString;
  theirDiffType: z.ZodString;
  base: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  ours: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  theirs: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
declare const MergePreviewRequestSchema: z.ZodObject<{
  sourceBranch: z.ZodString;
  targetBranch: z.ZodString;
}, z.core.$strip>;
declare const MergePreviewResponseSchema: z.ZodObject<{
  data: z.ZodObject<{
    hasConflicts: z.ZodBoolean;
    sourceHash: z.ZodString;
    targetHash: z.ZodString;
    canFastForward: z.ZodBoolean;
    diffSummary: z.ZodArray<z.ZodObject<{
      table: z.ZodString;
      diffType: z.ZodString;
      dataChange: z.ZodBoolean;
      schemaChange: z.ZodBoolean;
    }, z.core.$strip>>;
    conflicts: z.ZodArray<z.ZodObject<{
      table: z.ZodString;
      primaryKey: z.ZodRecord<z.ZodString, z.ZodString>;
      ourDiffType: z.ZodString;
      theirDiffType: z.ZodString;
      base: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
      ours: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
      theirs: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>>;
  }, z.core.$strip>;
}, z.core.$strip>;
declare const MergeExecuteRequestSchema: z.ZodObject<{
  sourceBranch: z.ZodString;
  targetBranch: z.ZodString;
  sourceHash: z.ZodString;
  targetHash: z.ZodString;
  message: z.ZodOptional<z.ZodString>;
  author: z.ZodOptional<z.ZodObject<{
    name: z.ZodString;
    email: z.ZodString;
  }, z.core.$strip>>;
  resolutions: z.ZodOptional<z.ZodArray<z.ZodObject<{
    table: z.ZodString;
    primaryKey: z.ZodRecord<z.ZodString, z.ZodString>;
    rowDefaultPick: z.ZodEnum<{
      ours: "ours";
      theirs: "theirs";
    }>;
    columns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
      ours: "ours";
      theirs: "theirs";
    }>>>;
  }, z.core.$strip>>>;
}, z.core.$strip>;
declare const MergeExecuteResponseSchema: z.ZodObject<{
  data: z.ZodObject<{
    status: z.ZodLiteral<"success">;
    mergeCommitHash: z.ZodString;
    sourceBranch: z.ZodString;
    targetBranch: z.ZodString;
  }, z.core.$strip>;
}, z.core.$strip>;
type ResolvedRef = z.infer<typeof ResolvedRefSchema>;
type CreateBranchRequest = z.infer<typeof CreateBranchRequestSchema>;
type BranchInfo = z.infer<typeof BranchInfoSchema>;
type BranchResponse = z.infer<typeof BranchResponseSchema>;
type BranchListResponse = z.infer<typeof BranchListResponseSchema>;
type BranchNameParams = z.infer<typeof BranchNameParamsSchema>;
type ConflictResolution = z.infer<typeof ConflictResolutionSchema>;
type DiffSummaryItem = z.infer<typeof DiffSummaryItemSchema>;
type ConflictItem = z.infer<typeof ConflictItemSchema>;
type MergePreviewRequest = z.infer<typeof MergePreviewRequestSchema>;
type MergePreviewResponse = z.infer<typeof MergePreviewResponseSchema>;
type MergeExecuteRequest = z.infer<typeof MergeExecuteRequestSchema>;
type MergeExecuteResponse = z.infer<typeof MergeExecuteResponseSchema>;
//#endregion
export { BranchInfo, BranchInfoSchema, BranchListResponse, BranchListResponseSchema, BranchNameParams, BranchNameParamsSchema, BranchNameSchema, BranchResponse, BranchResponseSchema, ConflictItem, ConflictItemSchema, ConflictResolution, ConflictResolutionSchema, CreateBranchRequest, CreateBranchRequestSchema, DiffSummaryItem, DiffSummaryItemSchema, MergeExecuteRequest, MergeExecuteRequestSchema, MergeExecuteResponse, MergeExecuteResponseSchema, MergePreviewRequest, MergePreviewRequestSchema, MergePreviewResponse, MergePreviewResponseSchema, ResolvedRef, ResolvedRefSchema };