import { GroupInfo } from './table.js'; export interface ParsedContentId { middle: string; name: string; prefix: 'app' | 'custom'; } /** * Parse a content view identifier of the form `app..` or * `custom..`. Returns null for anything that doesn't match. */ export declare function parseContentId(id: string): ParsedContentId | null; /** * Produce the column-1 paste-back key for a content view. Rewrites * `app..` to `app..` when the slug is known; passes * `custom.*` and unresolvable app ids through unchanged (both remain valid * paste-back forms against the detail endpoint). */ export declare function resolveContentKey(id: string, appSlugById: Record): string; /** * Group a content view record for the vertical split. Records with no * `app_id` belong to the platform's `custom.*` source and land in a * single `` section at the top of the output. */ export declare function groupContentRecord(record: { app_id?: string; }, appSlugById: Record): GroupInfo; /** * Translate a user-supplied content identifier into the unresolved API * form. Accepts: * - `custom..` → unchanged * - `app..` → unchanged (already unresolved form) * - `app..` → slug resolved to hex * - bare `` → combined with scope.appId to `app..` * * `resolveAppId` is injected so this function is testable without a live API. */ export declare function reverseResolveContentId(identifier: string, scope: { appId?: string; }, resolveAppId: (slug: string) => Promise): Promise;