import type { ContentEntryListStage, ListPublishedEntriesResponse, ContentEntryDetailResponse } from "./types";
import type { ApiClient } from "./request";
import type { ScheduledContentEntryOrPageResponse } from "./contentRuntime";
export { contentKeys } from "./contentKeys";
export type { ContentEntryDetail, ContentEntryListItem, ContentEntrySummary, JsonValue, PublishedBlockBaseline, } from "./types";
type JsonValue = import("./types").JsonValue;
export type ContentTypeKey = string;
export declare function createContentEntry<TResponse extends {
    entry: unknown;
}>(apiClient: ApiClient, { type, siteId, body, options, }: {
    type: ContentTypeKey;
    siteId: string;
    body?: Record<string, JsonValue>;
    options?: RequestInit;
}): Promise<TResponse>;
export declare function publishContentEntry<TRequest extends Record<string, JsonValue> | undefined, TResponse extends {
    entry: unknown;
}>(apiClient: ApiClient, { type, siteId, entryId, body, options, }: {
    type: ContentTypeKey;
    siteId: string;
    entryId: string;
    body?: TRequest;
    options?: RequestInit;
}): Promise<TResponse>;
export declare function scheduleContentEntry(apiClient: ApiClient, { type, siteId, entryId, publishAt, options, }: {
    type: ContentTypeKey;
    siteId: string;
    entryId: string;
    publishAt: string;
    options?: RequestInit;
}): Promise<ScheduledContentEntryOrPageResponse>;
export declare function cancelScheduledContentEntry(apiClient: ApiClient, { type, siteId, entryId, options, }: {
    type: ContentTypeKey;
    siteId: string;
    entryId: string;
    options?: RequestInit;
}): Promise<ScheduledContentEntryOrPageResponse>;
export declare function discardContentDraft<TResponse extends {
    entry: unknown;
}>(apiClient: ApiClient, { type, siteId, entryId, options, }: {
    type: ContentTypeKey;
    siteId: string;
    entryId: string;
    options?: RequestInit;
}): Promise<TResponse>;
export declare function deleteContentEntry(apiClient: ApiClient, { type, siteId, entryId, options, }: {
    type: ContentTypeKey;
    siteId: string;
    entryId: string;
    options?: RequestInit;
}): Promise<{
    ok: boolean;
}>;
export declare function updateContentEntryContent<TResponse extends {
    entry: unknown;
}>(apiClient: ApiClient, { siteId, type, entryId, body, options, }: {
    siteId: string;
    type: ContentTypeKey;
    entryId: string;
    body: {
        data: Record<string, JsonValue>;
        optimistic_hash?: string | null;
    } | {
        path: string;
        value: JsonValue;
        optimistic_hash?: string | null;
    };
    options?: RequestInit;
}): Promise<TResponse>;
type ContentEntryMetadataInput = {
    title?: string | null;
    slug?: string | null;
    status?: "draft" | "scheduled" | "published";
    publishAt?: string | null;
    metaTitle?: string | null;
    metaDescription?: string | null;
    ogImageId?: string | null;
};
type ContentEntryContentInput = {
    data: Record<string, JsonValue>;
    optimistic_hash?: string | null;
} | {
    path: string;
    value: JsonValue;
    optimistic_hash?: string | null;
};
export declare function mutateContentEntryUnified<TContent = Record<string, unknown>>(apiClient: ApiClient, { siteId, type, entryId, metadata, content, options, }: {
    siteId: string;
    type: ContentTypeKey;
    entryId: string;
    metadata?: ContentEntryMetadataInput;
    content?: ContentEntryContentInput;
    options?: RequestInit;
}): Promise<ContentEntryDetailResponse<TContent>>;
export declare function listPublishedEntries<TContent = Record<string, unknown>>(apiClient: ApiClient, { siteId, type, limit, offset, order, stage, meta, mode, entryIds, options, }: {
    siteId: string;
    type: string;
    limit?: number;
    offset?: number;
    order?: "published_at.asc" | "published_at.desc" | "title.asc" | "title.desc" | "updated_at.asc" | "updated_at.desc";
    stage?: ContentEntryListStage;
    meta?: boolean;
    mode?: "manual";
    entryIds?: string[];
    options?: RequestInit;
}): Promise<ListPublishedEntriesResponse<TContent>>;
