/**
 * Mixin to define a class able to handle a collection of repositories.
 * @param {Object} base to be extendet
 */
export function RepositoryOwner(base: any): {
    new (): {
        [x: string]: any;
        "__#2@#repositories": Map<any, any>;
        /**
         * Normalizes a repository name.
         * Strips branch away.
         * @param {string} name
         * @param {boolean} forLookup
         * @return {string} normalized name
         */
        normalizeRepositoryName(name: string, forLookup: boolean): string;
        /**
         * Lookup a repository.
         * @param {string} [name] of the repository may contain a #branch
         * @return {Promise<Repository|undefined>}
         */
        repository(name?: string): Promise<Repository | undefined>;
        /**
         * List repositories for the owner.
         * @param {string[]|string} [patterns]
         * @return {AsyncIterable<Repository>} all matching repositories of the owner
         */
        repositories(patterns?: string[] | string): AsyncIterable<Repository>;
        /**
         * Lookup entity of a given type and name.
         * @param {string} type
         * @param {string} [name]
         * @param {function} [split]
         * @param {Object} [defaultItem]
         * @returns {Promise<OwnedObject|undefined>} from a repository
         */
        lookup(type: string, name?: string, split?: Function, defaultItem?: any): Promise<OwnedObject | undefined>;
        /**
         * List entities for a given type and pattern.
         * @param {string} type
         * @param {string[]|string} [patterns]
         * @param {function} [split]
         * @param {Object} [defaultItem]
         * @return {AsyncIterable<OwnedObject>} matching type and pattern
         */
        list(type: string, patterns?: string[] | string, split?: Function, defaultItem?: any): AsyncIterable<OwnedObject>;
        /**
         * Create a new {@link Repository} in the provider.
         * If there is already if repository for the given name it will be returned.
         * @param {string} name
         * @param {Object} [options]
         * @return {Promise<Repository>} newly created repository (if not already present)
         */
        createRepository(name: string, options?: any): Promise<Repository>;
        /**
         * Add a {@link Repository} to the group.
         * Only adds the repository to the in memory representation (does not execute any provider actions).
         * @param {string} name
         * @param {Object} [options]
         * @return {Promise<Repository>} newly created repository
         */
        addRepository(name: string, options?: any): Promise<Repository>;
        _addRepository(repository: any): void;
        /**
         * Delete a repository.
         * @param {string} name
         * @return {Promise<any>}
         */
        deleteRepository(name: string): Promise<any>;
        initializeRepositories(): void;
        /**
         * Lookup a branch.
         * First lookup repository then the branch.
         * If no branch was specified then the default branch will be delivered.
         * @see {@link Repository#defaultBranch}
         * @param {string} name with optional branch name as '#myBranchName'
         * @return {Promise<Branch|undefined>}
         */
        branch(name: string): Promise<Branch | undefined>;
        /**
         * List branches for the owner.
         * @param {string[]|string} [patterns]
         * @return {AsyncIterable<Branch>} all matching branches of the owner
         */
        branches(patterns?: string[] | string): AsyncIterable<Branch>;
        tag(name: any): Promise<OwnedObject>;
        tags(patterns: any): AsyncGenerator<OwnedObject, void, any>;
        pullRequest(name: any): Promise<OwnedObject>;
        pullRequests(patterns: any): AsyncGenerator<OwnedObject, void, any>;
        project(name: any): Promise<OwnedObject>;
        projects(patterns: any): AsyncGenerator<OwnedObject, void, any>;
        application(name: any): Promise<OwnedObject>;
        applications(patterns: any): AsyncGenerator<OwnedObject, void, any>;
        milestone(name: any): Promise<OwnedObject>;
        milestones(patterns: any): AsyncGenerator<OwnedObject, void, any>;
        hook(name: any): Promise<OwnedObject>;
        hooks(patterns: any): AsyncGenerator<OwnedObject, void, any>;
    };
    [x: string]: any;
};
import { Repository } from "./repository.mjs";
import { OwnedObject } from "./owned-object.mjs";
import { Branch } from "./branch.mjs";
