import type { OAuth2Client } from 'google-auth-library'; export declare function listServiceAccounts(auth: OAuth2Client, projectId: string): Promise<{ email: string | null | undefined; displayName: string | null | undefined; uniqueId: string | null | undefined; disabled: boolean; }[]>; export declare function createServiceAccount(auth: OAuth2Client, projectId: string, accountId: string, displayName: string): Promise<{ email: string | null | undefined; uniqueId: string | null | undefined; displayName: string | null | undefined; projectId: string | null | undefined; }>; export declare function createServiceAccountKey(auth: OAuth2Client, serviceAccountEmail: string): Promise<{ keyId: string | null; clientEmail: string | undefined; projectId: string | undefined; json: string; }>; export declare function listServiceAccountKeys(auth: OAuth2Client, serviceAccountEmail: string): Promise<{ id: string | null; keyType: string | null | undefined; validBeforeTime: string | null | undefined; validAfterTime: string | null | undefined; }[]>; /** * 프로젝트의 IAM 정책을 read-modify-write 해서 member에게 role 부여. * 이미 같은 (role, member) 바인딩이 있으면 no-op. * * member 예: * 'serviceAccount:my-sa@my-project.iam.gserviceaccount.com' * 'user:alice@example.com' * 'group:admins@example.com' * * 자주 쓰는 role 예: * 'roles/iam.serviceAccountUser' — 서비스 계정으로 위임 가능 * 'roles/iam.serviceAccountTokenCreator' — 서비스 계정의 단기 토큰 발급 * 'roles/editor' / 'roles/owner' — 광범위 (조심) */ export declare function addProjectIamPolicyBinding(auth: OAuth2Client, projectId: string, member: string, role: string): Promise<{ added: boolean; role: string; member: string; etag: string | null | undefined; }>;