import { GcpAuthenticatedIdentity } from "../creds/identity.js";
import { BaseGcpIamManager, IamPolicy } from "./base-iam.js";
import { ProjectPermission, ProjectRole } from "./constants.js";
export declare class GcpProjectIamManager extends BaseGcpIamManager {
    private projectsClient;
    private serviceUsageClient;
    private authClient;
    private projectId;
    private readonly projectManager;
    constructor(identity: GcpAuthenticatedIdentity, organizationId: string, projectId: string);
    protected initializeSpecific(): Promise<void>;
    protected formatResourceName(projectId: string): string;
    checkPermissions(): Promise<{
        missingPermissions: ProjectPermission[];
    }>;
    getIamPolicy(): Promise<IamPolicy>;
    setIamPolicy(policy: IamPolicy): Promise<void>;
    addRoles(userId: string, roles: ProjectRole[]): Promise<boolean>;
    checkServicesEnabled(): Promise<boolean>;
    enableRequiredServices(): Promise<void>;
    ensurePermissions(): Promise<void>;
}
interface TableRow {
    [key: string]: string | boolean | number | null | undefined;
}
export declare function displayTable(data: TableRow[]): void;
export {};
