import { BranchStrategy } from 'catalog_common';
import { FirestartrGithubRepositorySpecRepoVisibility } from '../../../imports/firestartr.dev';
import { IClaimInstalledFeature } from '../base';
import { IComponentClaim } from '../base/component';
export interface IGithubRepositoryClaim extends IComponentClaim {
    providers: {
        github: {
            description: string;
            name: string;
            org: string;
            orgPermissions: string;
            technology: IComponentClaimTechnology;
            actions: IComponentClaimActions;
            visibility: FirestartrGithubRepositorySpecRepoVisibility;
            allowSquashMerge: boolean;
            allowMergeCommit: boolean;
            allowRebaseMerge: boolean;
            allowAutoMerge: boolean;
            deleteBranchOnMerge: boolean;
            autoInit: boolean;
            archiveOnDestroy: boolean;
            allowUpdateBranch: boolean;
            hasIssues: boolean;
            features: IClaimInstalledFeature[];
            pages: IRepositoryPage;
            branchStrategy: IComponentClaimBranchStrategy;
            additionalBranches: {
                name: string;
                orphan: boolean;
            }[];
        };
    };
}
interface IComponentClaimBranchStrategy {
    name: BranchStrategy;
    defaultBranch: string;
}
interface IComponentClaimTechnology {
    stack: string;
    version: string;
}
interface IComponentClaimActions {
    oidc: {
        useDefault: boolean;
        includeClaimKeys: string[];
    };
}
interface IRepositoryPage {
    cname: string;
    source: {
        branch: string;
        path: string;
    };
}
export type IComponentClaimOwnerType = 'user' | 'group';
export {};
