import { Service } from '../../../providers/service/service';
import { Repository } from '../../../models/repositories';
/**
 * Service responsible for generating authority strings related to repository access control.
 */
export declare class RepositoryAuthorityService implements Service {
    private readonly GRAPHQL_REPO_AUTHORITY;
    private readonly SYSTEM_REPOSITORY_ID;
    /**
     * Checks if the given repository is a system repository.
     * @param repository The repository to check.
     * @returns True if the repository is a system repository, false otherwise.
     */
    isSystemRepository(repository: Repository): boolean;
    /**
     * Generates the authority string for the current repository based on the provided action and repository ID.
     * @param action The action for which to generate the authority (e.g., 'READ', 'WRITE').
     * @param repositoryId The ID of the repository for which to generate the authority.
     * @returns The generated authority string for the current repository.
     */
    getCurrentGqlRepoAuthority(action: string, repositoryId: string): string;
    /**
     * Generates the authority string for all repositories based on the provided action.
     * @param action The action for which to generate the authority (e.g., 'READ', 'WRITE').
     * @returns The generated authority string for all repositories.
     */
    getOverallGqlRepoAuthority(action: string): string;
    /**
     * Generates a location-specific identifier for the given repository. If the repository has a location, the identifier
     * is in the format "id@location". Otherwise, it is simply the repository ID.
     * @param repository The repository for which to generate the location-specific identifier.
     * @returns The location-specific identifier for the repository.
     */
    getLocationSpecificId(repository: Repository): string;
    /**
     * Generates the authority string for a specific repository based on the provided action and repository ID.
     * @param action The action for which to generate the authority (e.g., 'READ', 'WRITE').
     * @param repositoryId The ID of the repository for which to generate the authority.
     * @returns The generated authority string for the specific repository.
     */
    getCurrentRepoAuthority(action: string, repositoryId: string): string;
    /**
     * Generates the authority string for all repositories based on the provided action. The authority string is in the format "ACTION_REPO_*".
     * @param action The action for which to generate the authority (e.g., 'READ', 'WRITE').
     * @returns The generated authority string for all repositories.
     */
    getOverallRepoAuthority(action: string): string;
}
