export declare const DEFAULT_SOCIAL_ASSET_FOLDERS: readonly ["captures", "screenshots", "trailers", "builds/latest/social", "marketing", ".glitch/social-assets"]; export interface SocialAssetConfig { readonly version: 1; readonly asset_roots: string[]; readonly allowed_types: string[]; readonly max_file_size_mb: number; readonly ignore: string[]; readonly upload_mode: "manual_review"; readonly created_at?: string; readonly updated_at?: string; } export interface SocialAssetWatchConfig { readonly version: 1; readonly enabled: boolean; readonly project_root: string; readonly interval_hours: number; readonly scan_options: SocialAssetWatchScanOptions; readonly last_scan_at?: string; readonly next_scan_at?: string; readonly updated_at: string; } export interface SocialAssetWatchScanOptions { readonly folders?: readonly string[]; readonly max_files: number; readonly max_depth: number; readonly min_score: number; readonly since_hours?: number; readonly write_manifest: boolean; } export interface SocialAssetWatchResult { readonly project_root: string; readonly enabled: boolean; readonly interval_hours: number; readonly watch_config_path: string; readonly next_scan_at?: string; readonly scan?: SocialAssetScanResult; } export interface SocialAssetCandidate { readonly id: string; readonly sha256: string; readonly file_path: string; readonly relative_path: string; readonly asset_root: string; readonly file_name: string; readonly extension: string; readonly mime_type: string; readonly media_kind: "image" | "video"; readonly size_bytes: number; readonly modified_at: string; readonly score: number; readonly reasons: string[]; readonly suggested_platforms: string[]; } export interface SocialAssetScanResult { readonly project_root: string; readonly scanned_roots: string[]; readonly candidates: SocialAssetCandidate[]; readonly manifest_path?: string; readonly ignored_roots: string[]; } export interface SocialAssetSetupResult { readonly project_root: string; readonly folders: string[]; readonly config_path?: string; readonly watch_config_path?: string; readonly created_or_verified: string[]; } export declare function socialAssetConfigPath(projectRoot: string): string; export declare function socialAssetManifestPath(projectRoot: string): string; export declare function socialAssetWatchConfigPath(projectRoot: string): string; export declare function isSocialAssetExtension(extension: string): boolean; export declare function mimeTypeForSocialAsset(fileName: string): string | undefined; export declare function assertLocalPathAllowed(path: string, allowedRoots: readonly string[], label?: string): Promise; export declare function setupSocialAssetFolders(projectRoot: string, folders?: readonly string[], writeConfig?: boolean): Promise; export declare function scanSocialAssetFolders(projectRoot: string, options: { readonly folders?: readonly string[]; readonly maxFiles: number; readonly maxDepth: number; readonly minScore: number; readonly sinceHours?: number; readonly writeManifest: boolean; }): Promise; export declare function readSocialAssetManifest(projectRoot: string): Promise; export declare function startSocialAssetWatch(projectRoot: string, options?: { readonly intervalHours?: number; readonly runImmediately?: boolean; readonly scanOptions?: Partial; }): Promise; export declare function stopSocialAssetWatch(projectRoot: string): Promise; export declare function readSocialAssetWatchConfig(projectRoot: string): Promise; export declare function hashLocalAssetFile(filePath: string): Promise;