export type ProjectOperationPlane = "control" | "data" | "local";
export type ProjectOperationAuthMode = "principal" | "grant_key" | "service_key" | "project_credential" | "anon_key";
export interface ProjectOperationAuthClassification {
    operation: string;
    scope: "project";
    plane: ProjectOperationPlane;
    authModes: ProjectOperationAuthMode[];
    defaultAuthMode: ProjectOperationAuthMode;
    requiresProjectId: boolean;
    mayUseLocalCredentialCache: boolean;
    localCredentialMissCode?: "PROJECT_CREDENTIAL_NOT_FOUND";
}
export declare const PROJECT_OPERATION_AUTH_CLASSIFICATIONS: readonly [{
    readonly operation: "projects.list";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: false;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "projects.get";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "projects.use";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "projects.keys";
    readonly scope: "project";
    readonly plane: "local";
    readonly authModes: ["project_credential"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}, {
    readonly operation: "projects.sql";
    readonly scope: "project";
    readonly plane: "data";
    readonly authModes: ["service_key"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}, {
    readonly operation: "projects.rest";
    readonly scope: "project";
    readonly plane: "data";
    readonly authModes: ["anon_key", "service_key"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}, {
    readonly operation: "domains.add";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key", "service_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "domains.list";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key", "service_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "domains.status";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key", "service_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "domains.delete";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["principal", "grant_key", "service_key"];
    readonly defaultAuthMode: "principal";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: false;
}, {
    readonly operation: "functions.*";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["service_key"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}, {
    readonly operation: "assets.*";
    readonly scope: "project";
    readonly plane: "data";
    readonly authModes: ["service_key"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}, {
    readonly operation: "jobs.*";
    readonly scope: "project";
    readonly plane: "control";
    readonly authModes: ["service_key"];
    readonly defaultAuthMode: "project_credential";
    readonly requiresProjectId: true;
    readonly mayUseLocalCredentialCache: true;
    readonly localCredentialMissCode: "PROJECT_CREDENTIAL_NOT_FOUND";
}];
export declare function projectOperationAuthClassification(operation: string): ProjectOperationAuthClassification | null;
//# sourceMappingURL=project-auth-classification.d.ts.map