/// <reference types="react" />
import { UseAsyncReturn } from 'react-async-hook';
import { Selection } from '@fluentui/react';
import { IPost } from '@shared/interfaces/model';
import { ModelState } from '@admin/helpers/hooks';
interface IPostsContext {
    selection: Selection<IPost>;
    getPosts: UseAsyncReturn<IPost[], [params?: any]>;
    getPost: UseAsyncReturn<IPost, [id: number, params?: any]>;
    getBySlug: UseAsyncReturn<IPost, [slug: string]>;
    createPost: UseAsyncReturn<IPost, [data?: any]>;
    updatePost: UseAsyncReturn<IPost, [id: number, data?: any]>;
    publishPosts: UseAsyncReturn<any, [data?: any]>;
    copyPosts: UseAsyncReturn<IPost, [id: number, data?: any]>;
    updatePostContent: UseAsyncReturn<IPost, [id: number, data?: any]>;
    compilePost: UseAsyncReturn<IPost, [post: any]>;
    getPreviewData: UseAsyncReturn<any, [id: number, versionId?: number]>;
    deletePosts: UseAsyncReturn<any[], [ids?: number[]]>;
    loadingContent: boolean;
    setLoadingContent: (id: string, val: boolean) => void;
    getVersions: UseAsyncReturn<IPost[], [postId: number, params?: any]>;
    getVersionsCount: UseAsyncReturn<any, [postId: number]>;
    deleteVersions: UseAsyncReturn<any[], [postId: number, ids?: number[]]>;
    restoreVersion: UseAsyncReturn<IPost[], [postId: number, id: number]>;
    post: IPost;
    setPost: (post: IPost) => void;
    additionalData: any;
    setAdditionalData: (data: any) => void;
    posts: IPost[];
    postsState: ModelState<IPost>;
    params: any;
    setParams: (params: any) => void;
    getOneContentType: UseAsyncReturn<IPost, [id: number]>;
    selectedPosts: IPost[];
    stateData: any;
    setStateData: (key: string, val: any) => void;
}
declare const PostsContextProvider: ({ defaultAdditionalData, children }: {
    defaultAdditionalData?: {};
    children: any;
}) => JSX.Element;
declare const usePosts: () => IPostsContext;
export { usePosts, PostsContextProvider };
