import { Page, Prisma, PrismaClient } from '@prisma/client';
import { Context } from '../../context';
import { PageWithRevisions } from '../../db/page';
export declare const deletePageById: (id: string, authenticate: Context['authenticate'], prisma: PrismaClient) => Promise<Page>;
type CreatePageInput = Omit<Prisma.PageRevisionCreateInput, 'properties' | 'revision'> & {
    properties: Prisma.MetadataPropertyCreateManyPageRevisionInput[];
};
export declare const createPage: (input: CreatePageInput, authenticate: Context['authenticate'], page: PrismaClient['page']) => Promise<{
    draft: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
    pending: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
    published: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
} & import("@prisma/client/runtime/library").GetResult<{
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    publishedId: string;
    pendingId: string;
    draftId: string;
}, unknown> & {}>;
export declare const duplicatePage: (id: string, authenticate: Context['authenticate'], pages: Context['loaders']['pages'], pageClient: PrismaClient['page']) => Promise<PageWithRevisions>;
export declare const unpublishPage: (id: string, authenticate: Context['authenticate'], pageClient: PrismaClient['page']) => Promise<PageWithRevisions>;
export declare const publishPage: (id: string, input: Pick<Prisma.PageRevisionCreateInput, 'publishAt' | 'publishedAt' | 'updatedAt'>, authenticate: Context['authenticate'], pageClient: PrismaClient['page']) => Promise<PageWithRevisions | null>;
type UpdatePageInput = Omit<Prisma.PageRevisionCreateInput, 'revision' | 'properties'> & {
    properties: Prisma.MetadataPropertyUncheckedCreateWithoutPageRevisionInput[];
};
export declare const updatePage: (id: string, { properties, ...input }: UpdatePageInput, authenticate: Context['authenticate'], pageClient: PrismaClient['page']) => Promise<{
    draft: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
    pending: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
    published: {
        properties: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            key: string;
            value: string;
            public: boolean;
            articleRevisionId: string;
            pageRevisionId: string;
            subscriptionId: string;
            userId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        revision: number;
        createdAt: Date;
        modifiedAt: Date;
        updatedAt: Date;
        publishedAt: Date;
        publishAt: Date;
        slug: string;
        title: string;
        description: string;
        tags: string[];
        imageID: string;
        socialMediaTitle: string;
        socialMediaDescription: string;
        socialMediaImageID: string;
        blocks: Prisma.JsonValue;
    }, unknown> & {};
} & import("@prisma/client/runtime/library").GetResult<{
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    publishedId: string;
    pendingId: string;
    draftId: string;
}, unknown> & {}>;
export {};
