import { protos } from "@google-cloud/resource-manager";
import { GcpAuthenticatedIdentity } from "./creds/identity.js";
export type GcpOrganization = protos.google.cloud.resourcemanager.v3.IOrganization;
type IamBinding = protos.google.iam.v1.IBinding;
interface IamPolicy {
    bindings: IamBinding[];
    version?: number;
    etag?: string;
}
export declare class GcpOrganizationManager {
    private initialized;
    private client;
    private identity;
    private organizationId;
    private iamManager;
    constructor(identity: GcpAuthenticatedIdentity, organizationId: string);
    initialize(): Promise<void>;
    getOrganization(): Promise<GcpOrganization>;
    getIamPolicy(): Promise<IamPolicy>;
    getIamRoles(): Promise<{
        role: string;
        members: string[];
    }[]>;
    ensurePermissions(): Promise<void>;
}
export declare function gcpSetOauthOrganizationId(options: {
    gcpOauthOrganizationId?: string;
}): Promise<void>;
export declare function gcpGetOauthOrganizationId(options: {
    gcpOauthOrganizationId?: string;
}): Promise<{
    success: boolean;
    gcpOauthOrganizationId?: string;
    error?: string;
}>;
export declare function gcpCheckOauthOrganizationId(options: {
    gcpOauthOrganizationId?: string;
}): Promise<{
    success: boolean;
    error?: string;
}>;
export {};
