import * as v from 'valibot';
import { type GrantGitHubAccessRequest, type RevokeGitHubAccessRequest, type CheckGitHubAccessRequest } from '@donotdev/core/server';
import type { CallableRequest } from 'firebase-functions/v2/https';
import type { CallableFunction } from 'firebase-functions/v2/https';
/**
 * Grant GitHub repository access to a user
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare const grantGitHubAccess: CallableFunction<GrantGitHubAccessRequest, Promise<any>>;
/**
 * Grant GitHub repository access with custom validation schema
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function grantGitHubAccessWithSchema(request: CallableRequest<GrantGitHubAccessRequest>, customSchema: v.BaseSchema<unknown, GrantGitHubAccessRequest, v.BaseIssue<unknown>>): Promise<{
    success: boolean;
    userId: string;
    githubUsername: string;
    repoConfig: {
        owner: string;
        repo: string;
    };
    permission: string;
    message: string;
}>;
/**
 * Revoke GitHub repository access from a user
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare const revokeGitHubAccess: CallableFunction<RevokeGitHubAccessRequest, Promise<any>>;
/**
 * Revoke GitHub repository access with custom validation schema
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function revokeGitHubAccessWithSchema(request: CallableRequest<RevokeGitHubAccessRequest>, customSchema: v.BaseSchema<unknown, RevokeGitHubAccessRequest, v.BaseIssue<unknown>>): Promise<{
    success: boolean;
    userId: string;
    githubUsername: string;
    repoConfig: {
        owner: string;
        repo: string;
    };
    message: string;
}>;
/**
 * Check GitHub repository access for a user
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare const checkGitHubAccess: CallableFunction<CheckGitHubAccessRequest, Promise<any>>;
/**
 * Check GitHub repository access with custom validation schema
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function checkGitHubAccessWithSchema(request: CallableRequest<CheckGitHubAccessRequest>, customSchema: v.BaseSchema<unknown, CheckGitHubAccessRequest, v.BaseIssue<unknown>>): Promise<{
    success: boolean;
    userId: string;
    githubUsername: string;
    repoConfig: {
        owner: string;
        repo: string;
    };
    hasAccess: boolean;
    customClaimsAccess: boolean;
    accessDetails: any;
    message: string;
}>;
