/**
 * Detail metadata for one post type (collection), sourced from the public
 * `GET /collections` introspection endpoint. Read-only by design: collection
 * schemas are file-defined in `actuate.config.ts`, so the Post Type editor
 * inspects the live schema and generates config snippets for changes.
 */
export interface PostTypeFieldSummary {
    name: string;
    type: string;
    required: boolean;
    relationTo?: string | string[];
    options?: unknown[];
}
export interface PostTypeDetail {
    slug: string;
    singular: string;
    plural: string;
    description: string | null;
    urlPrefix: string;
    icon: string | null;
    color: string | null;
    fields: PostTypeFieldSummary[];
}
export declare function fetchPostTypeDetail(slug: string): Promise<PostTypeDetail | null>;
/** Friendly display names for cms-core field types (design's type badges). */
export declare const FIELD_TYPE_LABELS: Record<string, string>;
export declare function fieldTypeLabel(type: string): string;
/** "clientName" / "client_name" → "Client Name" for display. */
export declare function humanizeFieldName(name: string): string;
/** "Client Name" → "clientName" for generated field keys. */
export declare function fieldKeyFromName(name: string): string;
export interface FieldSnippetInput {
    key: string;
    label: string;
    type: string;
    required: boolean;
    helpText?: string;
}
/**
 * Paste-ready field entry for the collection's `fields` map in
 * `actuate.config.ts` — same escape rules as the New Post Type snippet.
 */
export declare function renderFieldSnippet(input: FieldSnippetInput): string;
//# sourceMappingURL=post-types-service.d.ts.map