import { z } from 'zod';
export declare const ScmBranchTypeSchema: z.ZodEnum<{
    local: "local";
    remote: "remote";
}>;
export type ScmBranchType = z.infer<typeof ScmBranchTypeSchema>;
export declare const ScmBranchListRequestSchema: z.ZodObject<{
    cwd: z.ZodOptional<z.ZodString>;
    backendPreference: z.ZodOptional<z.ZodObject<{
        kind: z.ZodLiteral<"prefer">;
        backendId: z.ZodEnum<{
            git: "git";
            sapling: "sapling";
        }>;
    }, z.core.$strip>>;
    includeRemotes: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ScmBranchListRequest = z.infer<typeof ScmBranchListRequestSchema>;
export declare const ScmBranchListEntrySchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodEnum<{
        local: "local";
        remote: "remote";
    }>;
    upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    isCurrent: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ScmBranchListEntry = z.infer<typeof ScmBranchListEntrySchema>;
export declare const ScmBranchListResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    branches: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodEnum<{
            local: "local";
            remote: "remote";
        }>;
        upstream: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        isCurrent: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
    error: z.ZodOptional<z.ZodString>;
    errorCode: z.ZodOptional<z.ZodEnum<{
        INVALID_REQUEST: "INVALID_REQUEST";
        NOT_REPOSITORY: "NOT_REPOSITORY";
        INVALID_PATH: "INVALID_PATH";
        COMMAND_FAILED: "COMMAND_FAILED";
        CHANGE_APPLY_FAILED: "CHANGE_APPLY_FAILED";
        COMMIT_REQUIRED: "COMMIT_REQUIRED";
        CONFLICTING_WORKTREE: "CONFLICTING_WORKTREE";
        REMOTE_AUTH_REQUIRED: "REMOTE_AUTH_REQUIRED";
        REMOTE_UPSTREAM_REQUIRED: "REMOTE_UPSTREAM_REQUIRED";
        REMOTE_NON_FAST_FORWARD: "REMOTE_NON_FAST_FORWARD";
        REMOTE_FF_ONLY_REQUIRED: "REMOTE_FF_ONLY_REQUIRED";
        REMOTE_REJECTED: "REMOTE_REJECTED";
        REMOTE_NOT_FOUND: "REMOTE_NOT_FOUND";
        FEATURE_UNSUPPORTED: "FEATURE_UNSUPPORTED";
        BACKEND_UNAVAILABLE: "BACKEND_UNAVAILABLE";
    }>>;
}, z.core.$strip>;
export type ScmBranchListResponse = z.infer<typeof ScmBranchListResponseSchema>;
export declare const ScmBranchCreateRequestSchema: z.ZodObject<{
    cwd: z.ZodOptional<z.ZodString>;
    backendPreference: z.ZodOptional<z.ZodObject<{
        kind: z.ZodLiteral<"prefer">;
        backendId: z.ZodEnum<{
            git: "git";
            sapling: "sapling";
        }>;
    }, z.core.$strip>>;
    name: z.ZodString;
    checkout: z.ZodOptional<z.ZodBoolean>;
    startPoint: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ScmBranchCreateRequest = z.infer<typeof ScmBranchCreateRequestSchema>;
export declare const ScmBranchCreateResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    stdout: z.ZodOptional<z.ZodString>;
    stderr: z.ZodOptional<z.ZodString>;
    error: z.ZodOptional<z.ZodString>;
    errorCode: z.ZodOptional<z.ZodEnum<{
        INVALID_REQUEST: "INVALID_REQUEST";
        NOT_REPOSITORY: "NOT_REPOSITORY";
        INVALID_PATH: "INVALID_PATH";
        COMMAND_FAILED: "COMMAND_FAILED";
        CHANGE_APPLY_FAILED: "CHANGE_APPLY_FAILED";
        COMMIT_REQUIRED: "COMMIT_REQUIRED";
        CONFLICTING_WORKTREE: "CONFLICTING_WORKTREE";
        REMOTE_AUTH_REQUIRED: "REMOTE_AUTH_REQUIRED";
        REMOTE_UPSTREAM_REQUIRED: "REMOTE_UPSTREAM_REQUIRED";
        REMOTE_NON_FAST_FORWARD: "REMOTE_NON_FAST_FORWARD";
        REMOTE_FF_ONLY_REQUIRED: "REMOTE_FF_ONLY_REQUIRED";
        REMOTE_REJECTED: "REMOTE_REJECTED";
        REMOTE_NOT_FOUND: "REMOTE_NOT_FOUND";
        FEATURE_UNSUPPORTED: "FEATURE_UNSUPPORTED";
        BACKEND_UNAVAILABLE: "BACKEND_UNAVAILABLE";
    }>>;
}, z.core.$strip>;
export type ScmBranchCreateResponse = z.infer<typeof ScmBranchCreateResponseSchema>;
export declare const ScmBranchCheckoutStrategySchema: z.ZodEnum<{
    stash_on_current_branch: "stash_on_current_branch";
    bring_changes: "bring_changes";
}>;
export type ScmBranchCheckoutStrategy = z.infer<typeof ScmBranchCheckoutStrategySchema>;
export declare const ScmBranchCheckoutRequestSchema: z.ZodObject<{
    cwd: z.ZodOptional<z.ZodString>;
    backendPreference: z.ZodOptional<z.ZodObject<{
        kind: z.ZodLiteral<"prefer">;
        backendId: z.ZodEnum<{
            git: "git";
            sapling: "sapling";
        }>;
    }, z.core.$strip>>;
    name: z.ZodString;
    strategy: z.ZodEnum<{
        stash_on_current_branch: "stash_on_current_branch";
        bring_changes: "bring_changes";
    }>;
    overwriteCurrentBranchStash: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ScmBranchCheckoutRequest = z.infer<typeof ScmBranchCheckoutRequestSchema>;
export declare const ScmBranchCheckoutResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    stdout: z.ZodOptional<z.ZodString>;
    stderr: z.ZodOptional<z.ZodString>;
    didCreateStash: z.ZodOptional<z.ZodBoolean>;
    didPopStash: z.ZodOptional<z.ZodBoolean>;
    stashRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    error: z.ZodOptional<z.ZodString>;
    errorCode: z.ZodOptional<z.ZodEnum<{
        INVALID_REQUEST: "INVALID_REQUEST";
        NOT_REPOSITORY: "NOT_REPOSITORY";
        INVALID_PATH: "INVALID_PATH";
        COMMAND_FAILED: "COMMAND_FAILED";
        CHANGE_APPLY_FAILED: "CHANGE_APPLY_FAILED";
        COMMIT_REQUIRED: "COMMIT_REQUIRED";
        CONFLICTING_WORKTREE: "CONFLICTING_WORKTREE";
        REMOTE_AUTH_REQUIRED: "REMOTE_AUTH_REQUIRED";
        REMOTE_UPSTREAM_REQUIRED: "REMOTE_UPSTREAM_REQUIRED";
        REMOTE_NON_FAST_FORWARD: "REMOTE_NON_FAST_FORWARD";
        REMOTE_FF_ONLY_REQUIRED: "REMOTE_FF_ONLY_REQUIRED";
        REMOTE_REJECTED: "REMOTE_REJECTED";
        REMOTE_NOT_FOUND: "REMOTE_NOT_FOUND";
        FEATURE_UNSUPPORTED: "FEATURE_UNSUPPORTED";
        BACKEND_UNAVAILABLE: "BACKEND_UNAVAILABLE";
    }>>;
}, z.core.$strip>;
export type ScmBranchCheckoutResponse = z.infer<typeof ScmBranchCheckoutResponseSchema>;
export declare const ScmRemotePublishRequestSchema: z.ZodObject<{
    cwd: z.ZodOptional<z.ZodString>;
    backendPreference: z.ZodOptional<z.ZodObject<{
        kind: z.ZodLiteral<"prefer">;
        backendId: z.ZodEnum<{
            git: "git";
            sapling: "sapling";
        }>;
    }, z.core.$strip>>;
    remote: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ScmRemotePublishRequest = z.infer<typeof ScmRemotePublishRequestSchema>;
export declare const ScmRemotePublishResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    stdout: z.ZodOptional<z.ZodString>;
    stderr: z.ZodOptional<z.ZodString>;
    error: z.ZodOptional<z.ZodString>;
    errorCode: z.ZodOptional<z.ZodEnum<{
        INVALID_REQUEST: "INVALID_REQUEST";
        NOT_REPOSITORY: "NOT_REPOSITORY";
        INVALID_PATH: "INVALID_PATH";
        COMMAND_FAILED: "COMMAND_FAILED";
        CHANGE_APPLY_FAILED: "CHANGE_APPLY_FAILED";
        COMMIT_REQUIRED: "COMMIT_REQUIRED";
        CONFLICTING_WORKTREE: "CONFLICTING_WORKTREE";
        REMOTE_AUTH_REQUIRED: "REMOTE_AUTH_REQUIRED";
        REMOTE_UPSTREAM_REQUIRED: "REMOTE_UPSTREAM_REQUIRED";
        REMOTE_NON_FAST_FORWARD: "REMOTE_NON_FAST_FORWARD";
        REMOTE_FF_ONLY_REQUIRED: "REMOTE_FF_ONLY_REQUIRED";
        REMOTE_REJECTED: "REMOTE_REJECTED";
        REMOTE_NOT_FOUND: "REMOTE_NOT_FOUND";
        FEATURE_UNSUPPORTED: "FEATURE_UNSUPPORTED";
        BACKEND_UNAVAILABLE: "BACKEND_UNAVAILABLE";
    }>>;
}, z.core.$strip>;
export type ScmRemotePublishResponse = z.infer<typeof ScmRemotePublishResponseSchema>;
//# sourceMappingURL=scmBranches.d.ts.map