/**
 * Provider supporting serveral repository groups.
 *
 */
export class MultiGroupProvider extends BaseProvider {
    /**
     * Lookup a repository in the provider and all of its repository groups.
     * @param {string} name of the repository
     * @return {Promise<Repository|undefined>}
     */
    repository(name: string): Promise<Repository | undefined>;
    /**
     * Lookup a branch.
     * @param {string} name of the branch
     * @return {Promise<Branch|undefined>}
     */
    branch(name: string): Promise<Branch | undefined>;
    /**
     * Lookup a repository group.
     * @param {string} name of the group
     * @return {Promise<RepositoryGroup|undefined>}
     */
    repositoryGroup(name: string): Promise<RepositoryGroup | undefined>;
    /**
     * List groups.
     * @param {string[]|string} [patterns]
     * @return {AsyncIterable<RepositoryGroup>} all matching repositories groups of the provider
     */
    repositoryGroups(patterns?: string[] | string): AsyncIterable<RepositoryGroup>;
    /**
     * Create a new repository group.
     * If there is already a group for the given name it will be returend instead
     * @param {string} name of the group
     * @param {Object} [options]
     * @return {Promise<RepositoryGroup>}
     */
    createRepositoryGroup(name: string, options?: any): Promise<RepositoryGroup>;
    /**
     * Add a new repository group (not provider specific actions are executed).
     * @param {string} name of the group
     * @param {Object} [options]
     * @return {RepositoryGroup}
     */
    addRepositoryGroup(name: string, options?: any): RepositoryGroup;
    _addRepositoryGroup(repositoryGroup: any): void;
    #private;
}
import { BaseProvider } from "./base-provider.mjs";
import { Repository } from "./repository.mjs";
import { Branch } from "./branch.mjs";
import { RepositoryGroup } from "./repository-group.mjs";
