import { type CoolhandClientFileResponse } from 'coolhand-node'; export interface UploadClientFilePayload { filePath: string; /** Display name for the client file; defaults to the file's basename. */ name?: string; fileType?: 'slide_deck' | 'report' | 'document'; description?: string; metadata?: Record; } export interface UploadClientFileResult { status: 'uploaded' | 'dry-run'; sizeBytes: number; response: CoolhandClientFileResponse | null; } /** * Read a local file and upload it as a Coolhand client file via `Coolhand#uploadClientFile` * (private-key tier, like `getLogClient`/`getFeedbackClient` — the public key used by * `logRequest`/`createFeedback` 401s here). Shared core used by both the `upload-client-file` * command and `map-claude-projects` (which uploads a generated markdown report through the same * path rather than duplicating auth/upload logic). * * Resolution mirrors `log-request.ts`: `resolveClientForDryRun` tolerates "no clients configured * at all" only when `opts.dryRun` is set, so `--dry-run` works fully logged-out. `--dry-run` also * tolerates a resolved client that hasn't granted a private key yet (the default `coolhand login` * flow only grants the public key) — only a real, non-dry-run upload requires one. */ export declare function uploadClientFile(payload: UploadClientFilePayload, opts?: { clientId?: string; dryRun?: boolean; }): Promise; //# sourceMappingURL=upload-client-file.d.ts.map