/**
 * Shared permission gate for external sync operations (GitHub, JIRA, ADO)
 * Extracts the identical permission checking pattern from all sync plugins.
 */
export interface SyncPermissionResult {
    canRead: boolean;
    canWrite: boolean;
    message: string;
    configPath: string;
}
export interface SyncConfig {
    sync?: {
        enabled?: boolean;
        settings?: {
            canUpdateExternalItems?: boolean;
        };
    };
}
/**
 * Check if external sync operations are permitted.
 * Used by GitHub, JIRA, and ADO sync commands.
 *
 * @param projectRoot - Root directory of the project
 * @param toolName - Display name of the tool (e.g., "GitHub", "JIRA", "Azure DevOps")
 * @returns Permission result with read/write capabilities
 */
export declare function checkSyncPermissions(projectRoot: string, toolName: string): SyncPermissionResult;
/**
 * Format a consistent permission denied message for all external tools.
 */
export declare function formatPermissionDeniedMessage(toolName: string): string;
/**
 * Check if sync is enabled at all for this project.
 */
export declare function isSyncEnabled(projectRoot: string): boolean;
//# sourceMappingURL=permission-gate.d.ts.map