/**
 * Detect the provider from a repo/clone URL. Returns { provider, owner, repo }
 * for github / gitlab, or null for an unrecognized host. Mirrors the
 * sentry-triage fix-node's parseRepo so the dispatch agrees with the
 * deterministic fallback path.
 */
export function detectProvider(url: any): {
    provider: string;
    owner: any;
    repo: any;
};
export const gitWriteSkill: {
    id: string;
    envKeys: string[];
    promptFragment: string;
    /**
     * Handle git_open_pr in-process by DELEGATING to the github/gitlab skills'
     * already-tested create tools (so the API call + real-url guarantee + the
     * expected-business-error handling are reused, not re-implemented). Every
     * other tool (git_checkout / git_list_repos / git_explore) is delegated to
     * gitSkill — the read surface is unchanged.
     */
    handleToolCall(name: any, args: any, context: any): Promise<string>;
    tools: ({
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                url: {
                    type: string;
                    description: string;
                };
                branch: {
                    type: string;
                    description: string;
                };
                shallow: {
                    type: string;
                    description: string;
                };
                name: {
                    type: string;
                    description: string;
                };
                repo?: undefined;
                depth?: undefined;
            };
            required: string[];
        };
    } | {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                url?: undefined;
                branch?: undefined;
                shallow?: undefined;
                name?: undefined;
                repo?: undefined;
                depth?: undefined;
            };
            required?: undefined;
        };
    } | {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                repo: {
                    type: string;
                    description: string;
                };
                depth: {
                    type: string;
                    description: string;
                };
                url?: undefined;
                branch?: undefined;
                shallow?: undefined;
                name?: undefined;
            };
            required: string[];
        };
    } | {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                repoUrl: {
                    type: string;
                    description: string;
                };
                head: {
                    type: string;
                    description: string;
                };
                base: {
                    type: string;
                    description: string;
                };
                title: {
                    type: string;
                    description: string;
                };
                body: {
                    type: string;
                    description: string;
                };
                number?: undefined;
                mergeMethod?: undefined;
            };
            required: string[];
        };
    } | {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                repoUrl: {
                    type: string;
                    description: string;
                };
                number: {
                    type: string;
                    description: string;
                };
                mergeMethod: {
                    type: string;
                    enum: string[];
                    description: string;
                };
                head?: undefined;
                base?: undefined;
                title?: undefined;
                body?: undefined;
            };
            required: string[];
        };
    })[];
    description: string;
    resolve(): any;
};
