import { type AppwriteCliCredentials } from "appwrite-utils-helpers"; export interface SelectivePullFlowOptions { projectRoot?: string; /** Explicit sidecar path from --config . */ configPath?: string; /** Credentials surfaced from argv. */ credentials?: AppwriteCliCredentials; } interface NameGroup { template: string; members: T[]; sampleIds: string[]; } /** * Replace ID-like tokens in a name with a literal `*` so similarly-named * auto-provisioned resources (`User 69ef91b1c4ea1840d79d Files`, * `Conversation 69ebe486001b8a7584c0`) collapse to one template. Detection * targets: * - 16+ hex chars (covers Appwrite's 20-char $id snake hex) * - 20-26 base32-ish chars (ULID-style) */ export declare function normalizeNameTemplate(name: string): string; /** * Group items by their name template. Groups with ≥ `threshold` members * collapse into a single representative row; smaller groups expand to * individual rows. */ export declare function groupByTemplate(items: T[], getName: (item: T) => string, getId: (item: T) => string, threshold?: number): { groups: NameGroup[]; singletons: T[]; }; export declare function runSelectivePullFlow(opts?: SelectivePullFlowOptions): Promise; export {};