/** 한 번의 목록 호출이 따라갈 최대 페이지 수. 서버가 토큰을 끝없이 돌려줘도 멈춘다. */ export declare const MAX_PAGES = 50; export interface Page { items: T[]; nextPageToken?: string | null; } export interface CollectedPages { items: T[]; /** 페이지 상한에 걸려 뒤쪽을 못 읽었으면 true — 호출부가 **반드시** 사용자에게 알린다. */ truncated: boolean; } /** * 모든 페이지를 모은다. 같은 토큰이 반복되면 무한 루프이므로 항상 에러. * 상한에 걸리면 `truncated: true` 로 지금까지 읽은 것을 돌려준다 — 조용히 자르지 않고 * 표시하는 것이 계약이다. */ export declare function collectPagesUpTo(fetchPage: (pageToken: string | undefined) => Promise>, maxPages?: number): Promise>; /** 전부 읽지 못하면 실패한다 — 부분 목록이 판단 근거로 쓰이면 안 되는 곳(IAM·Firebase)용. */ export declare function collectPages(fetchPage: (pageToken: string | undefined) => Promise>, maxPages?: number): Promise;