import type { OAuth2Client } from 'google-auth-library'; /** `01F1F4-FD007B-2973A7` / `billingAccounts/01F1F4-...` 어느 형태로 줘도 정규화. */ export declare function normalizeBillingAccount(input: string): string; export type BillingInfo = { projectId: string; billingEnabled: boolean; billingAccountName: string | null; /** 사람이 읽을 판정 — Blaze/Spark 오판을 막기 위해 문장으로 준다. */ verdict: string; }; export declare function getBillingInfo(auth: OAuth2Client, projectId: string): Promise; /** * 결제 계정에 붙은 프로젝트 목록 = **비용 범위 확인**. * 여기서 프로젝트가 여러 개면 계정 전체 예산은 의미가 없고 프로젝트 필터를 써야 한다. */ export declare function listBillingProjects(auth: OAuth2Client, billingAccount: string, quotaProjectId?: string): Promise<{ billingAccount: string; count: number; shared: boolean; projects: { projectId: string | null | undefined; billingEnabled: boolean; }[]; }>; export declare function listBudgets(auth: OAuth2Client, billingAccount: string, quotaProjectId?: string): Promise<{ name: string | null | undefined; displayName: string | null | undefined; amount: string; projects: string[]; thresholds: (number | null | undefined)[]; }[]>; export type CreateBudgetInput = { billingAccount: string; displayName: string; /** 통화 단위 정수 금액 (KRW 는 소수 없음 — 10000 = ₩10,000). */ amountUnits: number; currencyCode?: string; /** 감시할 프로젝트 ID 목록. **비우면 결제 계정 전체** — 공용 계정이면 소음이 된다. */ projectIds?: string[]; /** 알림 임계 비율 (0~1). 기본 0.5 / 0.9 / 1.0. */ thresholds?: number[]; /** quota 주체 프로젝트 — Billing Budget API 를 켜 둔 프로젝트. quotaHeaders 주석 참고. */ quotaProjectId?: string; }; export declare function createBudget(auth: OAuth2Client, input: CreateBudgetInput): Promise<{ name: string | null | undefined; displayName: string | null | undefined; projects: string[]; thresholds: number[]; }>;