import { protos } from "@google-cloud/resource-manager";
import { GoogleAuth } from "google-auth-library";
import { GcpAuthenticatedIdentity } from "../creds/identity.js";
import { GcpProjectIamManager } from "../iam/project-iam.js";
export declare class GcpProjectManager {
    private readonly identity;
    private projectsClient;
    private readonly organizationId;
    private initialized;
    constructor(identity: GcpAuthenticatedIdentity, organizationId: string);
    initialize(): Promise<void>;
    projectExists(projectId: string): Promise<boolean>;
    isAttachedToOrganization(projectId: string): Promise<boolean>;
    deleteProject(projectId: string): Promise<void>;
    migrateProjectToOrganization(projectId: string): Promise<boolean>;
    listProjects(): Promise<string[]>;
    createProject(projectId: string): Promise<void>;
    getProject(projectId: string): Promise<protos.google.cloud.resourcemanager.v3.IProject>;
    getIamManager(projectId: string): Promise<GcpProjectIamManager>;
}
export declare function gcpSetOauthProjectId(options: {
    gcpOauthQuotaProjectId?: string;
    gcpOauthProjectId?: string;
}): Promise<void>;
export declare function gcpGetOauthProjectId(options: {
    gcpOauthProjectId?: string;
}): Promise<{
    success: boolean;
    gcpOauthProjectId?: string;
    error?: string;
}>;
export declare function gcpGetOauthQuotaProjectId(options: {
    gcpOauthQuotaProjectId?: string;
    gcpOauthProjectId?: string;
}): Promise<{
    success: boolean;
    gcpOauthQuotaProjectId?: string;
    error?: string;
}>;
export declare function gcpCheckOauthProjectId(options: {
    gcpOauthProjectId?: string;
    gcpOauthQuotaProjectId?: string;
}): Promise<{
    success: boolean;
    error?: string;
}>;
export declare function listProjects(auth: GoogleAuth, filter?: string): Promise<string[]>;
