export type PostStatus = 'DRAFT' | 'PUBLISHED' | 'SCHEDULED' | 'ARCHIVED';
export interface PostType {
    id: string;
    slug: string;
    name: string;
    singularName: string;
    description: string | null;
    urlBase: string;
    accentColor: string | null;
    icon: string | null;
    postCount: number;
    fieldCount: number;
    active: boolean;
}
export interface PostAuthor {
    id: string;
    name: string;
    initials: string;
}
export interface Post {
    id: string;
    title: string;
    slug: string;
    postTypeId: string;
    postTypeName: string;
    postTypeAccentColor: string | null;
    authorId: string;
    authorName: string;
    authorInitials: string;
    status: PostStatus;
    publishDate: string | null;
    updatedDate: string;
    seoScore: number | null;
    createdAt: string;
    updatedAt: string;
}
export interface PostsQuery {
    search?: string;
    postType?: string | 'all';
    status?: PostStatus | 'all';
    author?: string | 'all';
    sortBy?: 'title' | 'type' | 'author' | 'status' | 'date' | 'seo';
    sortDirection?: 'asc' | 'desc';
    page?: number;
    pageSize?: number;
}
export interface PostsResult {
    posts: Post[];
    total: number;
    page: number;
    pageSize: number;
    types: PostType[];
    authors: PostAuthor[];
}
export declare function fetchPostTypes(): Promise<PostType[]>;
export declare function fetchPosts(query?: PostsQuery): Promise<PostsResult>;
export declare function bulkUpdatePosts(ids: Array<{
    postTypeId: string;
    id: string;
}>, payload: {
    status?: PostStatus;
}): Promise<{
    ok: number;
    failed: number;
}>;
export declare function bulkDeletePosts(ids: Array<{
    postTypeId: string;
    id: string;
}>): Promise<{
    ok: number;
    failed: number;
}>;
//# sourceMappingURL=posts-service.d.ts.map