import { z, ZodRawShape, ZodTypeAny } from 'zod';

declare const baseAuthorsSchema: z.ZodObject<{
    name: z.ZodString;
    profile_image: z.ZodNullable<z.ZodString>;
    cover_image: z.ZodNullable<z.ZodString>;
    bio: z.ZodNullable<z.ZodString>;
    website: z.ZodNullable<z.ZodString>;
    location: z.ZodNullable<z.ZodString>;
    facebook: z.ZodNullable<z.ZodString>;
    twitter: z.ZodNullable<z.ZodString>;
    count: z.ZodOptional<z.ZodObject<{
        posts: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        posts: number;
    }, {
        posts: number;
    }>>;
    url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    slug: string;
    meta_title: string | null;
    meta_description: string | null;
    name: string;
    profile_image: string | null;
    cover_image: string | null;
    bio: string | null;
    website: string | null;
    location: string | null;
    facebook: string | null;
    twitter: string | null;
    url?: string | null | undefined;
    count?: {
        posts: number;
    } | undefined;
}, {
    id: string;
    slug: string;
    meta_title: string | null;
    meta_description: string | null;
    name: string;
    profile_image: string | null;
    cover_image: string | null;
    bio: string | null;
    website: string | null;
    location: string | null;
    facebook: string | null;
    twitter: string | null;
    url?: string | null | undefined;
    count?: {
        posts: number;
    } | undefined;
}>;

declare const basePagesSchema: z.ZodObject<{
    visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
    custom_template: z.ZodNullable<z.ZodString>;
    canonical_url: z.ZodNullable<z.ZodString>;
    authors: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        name: z.ZodString;
        profile_image: z.ZodNullable<z.ZodString>;
        cover_image: z.ZodNullable<z.ZodString>;
        bio: z.ZodNullable<z.ZodString>;
        website: z.ZodNullable<z.ZodString>;
        location: z.ZodNullable<z.ZodString>;
        facebook: z.ZodNullable<z.ZodString>;
        twitter: z.ZodNullable<z.ZodString>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, {
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }>, "many">>;
    tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodNullable<z.ZodString>;
        feature_image: z.ZodNullable<z.ZodString>;
        visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
        canonical_url: z.ZodNullable<z.ZodString>;
        accent_color: z.ZodNullable<z.ZodString>;
        url: z.ZodString;
        created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        twitter_image: z.ZodNullable<z.ZodString>;
        twitter_title: z.ZodNullable<z.ZodString>;
        twitter_description: z.ZodNullable<z.ZodString>;
        og_image: z.ZodNullable<z.ZodString>;
        og_title: z.ZodNullable<z.ZodString>;
        og_description: z.ZodNullable<z.ZodString>;
        codeinjection_head: z.ZodNullable<z.ZodString>;
        codeinjection_foot: z.ZodNullable<z.ZodString>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }>, "many">>;
    primary_author: z.ZodOptional<z.ZodNullable<z.ZodObject<z.objectUtil.extendShape<{
        name: z.ZodString;
        profile_image: z.ZodNullable<z.ZodString>;
        cover_image: z.ZodNullable<z.ZodString>;
        bio: z.ZodNullable<z.ZodString>;
        website: z.ZodNullable<z.ZodString>;
        location: z.ZodNullable<z.ZodString>;
        facebook: z.ZodNullable<z.ZodString>;
        twitter: z.ZodNullable<z.ZodString>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, {
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }>>>;
    primary_tag: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodNullable<z.ZodString>;
        feature_image: z.ZodNullable<z.ZodString>;
        visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
        canonical_url: z.ZodNullable<z.ZodString>;
        accent_color: z.ZodNullable<z.ZodString>;
        url: z.ZodString;
        created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        twitter_image: z.ZodNullable<z.ZodString>;
        twitter_title: z.ZodNullable<z.ZodString>;
        twitter_description: z.ZodNullable<z.ZodString>;
        og_image: z.ZodNullable<z.ZodString>;
        og_title: z.ZodNullable<z.ZodString>;
        og_description: z.ZodNullable<z.ZodString>;
        codeinjection_head: z.ZodNullable<z.ZodString>;
        codeinjection_foot: z.ZodNullable<z.ZodString>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }>>>;
    url: z.ZodString;
    excerpt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    reading_time: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    created_at: z.ZodString;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    published_at: z.ZodNullable<z.ZodString>;
    email_subject: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    is_page: z.ZodDefault<z.ZodBoolean>;
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
    codeinjection_head: z.ZodNullable<z.ZodString>;
    codeinjection_foot: z.ZodNullable<z.ZodString>;
    title: z.ZodString;
    html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    plaintext: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    comment_id: z.ZodNullable<z.ZodString>;
    feature_image: z.ZodNullable<z.ZodString>;
    feature_image_alt: z.ZodNullable<z.ZodString>;
    feature_image_caption: z.ZodNullable<z.ZodString>;
    featured: z.ZodBoolean;
    custom_excerpt: z.ZodNullable<z.ZodString>;
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    url: string;
    id: string;
    slug: string;
    custom_excerpt: string | null;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    created_at: string;
    title: string;
    comment_id: string | null;
    feature_image_alt: string | null;
    feature_image_caption: string | null;
    featured: boolean;
    custom_template: string | null;
    reading_time: number;
    published_at: string | null;
    is_page: boolean;
    authors?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }[] | undefined;
    tags?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }[] | undefined;
    excerpt?: string | null | undefined;
    updated_at?: string | null | undefined;
    html?: string | null | undefined;
    plaintext?: string | null | undefined;
    primary_author?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    } | null | undefined;
    primary_tag?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    } | null | undefined;
    email_subject?: string | null | undefined;
}, {
    url: string;
    id: string;
    slug: string;
    custom_excerpt: string | null;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    created_at: string;
    title: string;
    comment_id: string | null;
    feature_image_alt: string | null;
    feature_image_caption: string | null;
    featured: boolean;
    custom_template: string | null;
    published_at: string | null;
    authors?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }[] | undefined;
    tags?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }[] | undefined;
    excerpt?: string | null | undefined;
    updated_at?: string | null | undefined;
    html?: string | null | undefined;
    plaintext?: string | null | undefined;
    primary_author?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    } | null | undefined;
    primary_tag?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    } | null | undefined;
    reading_time?: number | undefined;
    email_subject?: string | null | undefined;
    is_page?: boolean | undefined;
}>;

declare const basePostsSchema: z.ZodObject<{
    visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
    custom_template: z.ZodNullable<z.ZodString>;
    canonical_url: z.ZodNullable<z.ZodString>;
    authors: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        name: z.ZodString;
        profile_image: z.ZodNullable<z.ZodString>;
        cover_image: z.ZodNullable<z.ZodString>;
        bio: z.ZodNullable<z.ZodString>;
        website: z.ZodNullable<z.ZodString>;
        location: z.ZodNullable<z.ZodString>;
        facebook: z.ZodNullable<z.ZodString>;
        twitter: z.ZodNullable<z.ZodString>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, {
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }>, "many">>;
    tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodNullable<z.ZodString>;
        feature_image: z.ZodNullable<z.ZodString>;
        visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
        canonical_url: z.ZodNullable<z.ZodString>;
        accent_color: z.ZodNullable<z.ZodString>;
        url: z.ZodString;
        created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        twitter_image: z.ZodNullable<z.ZodString>;
        twitter_title: z.ZodNullable<z.ZodString>;
        twitter_description: z.ZodNullable<z.ZodString>;
        og_image: z.ZodNullable<z.ZodString>;
        og_title: z.ZodNullable<z.ZodString>;
        og_description: z.ZodNullable<z.ZodString>;
        codeinjection_head: z.ZodNullable<z.ZodString>;
        codeinjection_foot: z.ZodNullable<z.ZodString>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }>, "many">>;
    primary_author: z.ZodOptional<z.ZodNullable<z.ZodObject<z.objectUtil.extendShape<{
        name: z.ZodString;
        profile_image: z.ZodNullable<z.ZodString>;
        cover_image: z.ZodNullable<z.ZodString>;
        bio: z.ZodNullable<z.ZodString>;
        website: z.ZodNullable<z.ZodString>;
        location: z.ZodNullable<z.ZodString>;
        facebook: z.ZodNullable<z.ZodString>;
        twitter: z.ZodNullable<z.ZodString>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, {
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }, {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }>>>;
    primary_tag: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodNullable<z.ZodString>;
        feature_image: z.ZodNullable<z.ZodString>;
        visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
        canonical_url: z.ZodNullable<z.ZodString>;
        accent_color: z.ZodNullable<z.ZodString>;
        url: z.ZodString;
        created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        count: z.ZodOptional<z.ZodObject<{
            posts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            posts: number;
        }, {
            posts: number;
        }>>;
        twitter_image: z.ZodNullable<z.ZodString>;
        twitter_title: z.ZodNullable<z.ZodString>;
        twitter_description: z.ZodNullable<z.ZodString>;
        og_image: z.ZodNullable<z.ZodString>;
        og_title: z.ZodNullable<z.ZodString>;
        og_description: z.ZodNullable<z.ZodString>;
        codeinjection_head: z.ZodNullable<z.ZodString>;
        codeinjection_foot: z.ZodNullable<z.ZodString>;
        meta_title: z.ZodNullable<z.ZodString>;
        meta_description: z.ZodNullable<z.ZodString>;
        slug: z.ZodString;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }, {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }>>>;
    url: z.ZodString;
    excerpt: z.ZodNullable<z.ZodString>;
    reading_time: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    created_at: z.ZodString;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    published_at: z.ZodNullable<z.ZodString>;
    email_subject: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    is_page: z.ZodDefault<z.ZodBoolean>;
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
    codeinjection_head: z.ZodNullable<z.ZodString>;
    codeinjection_foot: z.ZodNullable<z.ZodString>;
    title: z.ZodString;
    html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    plaintext: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    comment_id: z.ZodNullable<z.ZodString>;
    feature_image: z.ZodNullable<z.ZodString>;
    feature_image_alt: z.ZodNullable<z.ZodString>;
    feature_image_caption: z.ZodNullable<z.ZodString>;
    featured: z.ZodBoolean;
    custom_excerpt: z.ZodNullable<z.ZodString>;
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    url: string;
    id: string;
    slug: string;
    excerpt: string | null;
    custom_excerpt: string | null;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    created_at: string;
    title: string;
    comment_id: string | null;
    feature_image_alt: string | null;
    feature_image_caption: string | null;
    featured: boolean;
    custom_template: string | null;
    reading_time: number;
    published_at: string | null;
    is_page: boolean;
    authors?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }[] | undefined;
    tags?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }[] | undefined;
    updated_at?: string | null | undefined;
    html?: string | null | undefined;
    plaintext?: string | null | undefined;
    primary_author?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    } | null | undefined;
    primary_tag?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    } | null | undefined;
    email_subject?: string | null | undefined;
}, {
    url: string;
    id: string;
    slug: string;
    excerpt: string | null;
    custom_excerpt: string | null;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    created_at: string;
    title: string;
    comment_id: string | null;
    feature_image_alt: string | null;
    feature_image_caption: string | null;
    featured: boolean;
    custom_template: string | null;
    published_at: string | null;
    authors?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    }[] | undefined;
    tags?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    }[] | undefined;
    updated_at?: string | null | undefined;
    html?: string | null | undefined;
    plaintext?: string | null | undefined;
    primary_author?: {
        id: string;
        slug: string;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        profile_image: string | null;
        cover_image: string | null;
        bio: string | null;
        website: string | null;
        location: string | null;
        facebook: string | null;
        twitter: string | null;
        url?: string | null | undefined;
        count?: {
            posts: number;
        } | undefined;
    } | null | undefined;
    primary_tag?: {
        url: string;
        id: string;
        slug: string;
        codeinjection_head: string | null;
        codeinjection_foot: string | null;
        og_image: string | null;
        og_title: string | null;
        og_description: string | null;
        twitter_image: string | null;
        twitter_title: string | null;
        twitter_description: string | null;
        meta_title: string | null;
        meta_description: string | null;
        name: string;
        description: string | null;
        feature_image: string | null;
        visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
        canonical_url: string | null;
        accent_color: string | null;
        count?: {
            posts: number;
        } | undefined;
        created_at?: string | null | undefined;
        updated_at?: string | null | undefined;
    } | null | undefined;
    reading_time?: number | undefined;
    email_subject?: string | null | undefined;
    is_page?: boolean | undefined;
}>;

declare const baseSettingsSchema: z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    logo: z.ZodNullable<z.ZodString>;
    icon: z.ZodNullable<z.ZodString>;
    accent_color: z.ZodNullable<z.ZodString>;
    cover_image: z.ZodNullable<z.ZodString>;
    facebook: z.ZodNullable<z.ZodString>;
    twitter: z.ZodNullable<z.ZodString>;
    lang: z.ZodString;
    timezone: z.ZodString;
    codeinjection_head: z.ZodNullable<z.ZodString>;
    codeinjection_foot: z.ZodNullable<z.ZodString>;
    navigation: z.ZodArray<z.ZodObject<{
        label: z.ZodString;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        label: string;
    }, {
        url: string;
        label: string;
    }>, "many">;
    secondary_navigation: z.ZodArray<z.ZodObject<{
        label: z.ZodString;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
        label: string;
    }, {
        url: string;
        label: string;
    }>, "many">;
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
    members_support_address: z.ZodString;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    url: string;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    cover_image: string | null;
    facebook: string | null;
    twitter: string | null;
    description: string;
    accent_color: string | null;
    title: string;
    logo: string | null;
    icon: string | null;
    lang: string;
    timezone: string;
    navigation: {
        url: string;
        label: string;
    }[];
    secondary_navigation: {
        url: string;
        label: string;
    }[];
    members_support_address: string;
}, {
    url: string;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    cover_image: string | null;
    facebook: string | null;
    twitter: string | null;
    description: string;
    accent_color: string | null;
    title: string;
    logo: string | null;
    icon: string | null;
    lang: string;
    timezone: string;
    navigation: {
        url: string;
        label: string;
    }[];
    secondary_navigation: {
        url: string;
        label: string;
    }[];
    members_support_address: string;
}>;

type HTTPClientOptions = {
    key: string;
    version: APICredentials["version"];
    url: APICredentials["url"];
    endpoint: "content" | "admin";
};
interface IHTTPClient {
    get baseURL(): URL | undefined;
    get jwt(): string | undefined;
    generateJWT(key: string): Promise<string>;
    genHeaders(): Promise<Record<string, string>>;
    fetch({ resource, searchParams, options, pathnameIdentity, }: {
        resource: APIResource;
        searchParams?: URLSearchParams;
        options?: RequestInit;
        pathnameIdentity?: string;
    }): Promise<any>;
    fetchRawResponse({ resource, searchParams, options, pathnameIdentity, }: {
        resource: APIResource;
        searchParams?: URLSearchParams;
        options?: RequestInit;
        pathnameIdentity?: string;
    }): Promise<Response>;
}
interface IHTTPClientFactory {
    create(config: HTTPClientOptions): HTTPClient;
}
declare class HTTPClientFactory implements IHTTPClientFactory {
    private config;
    constructor(config: HTTPClientOptions);
    create(): HTTPClient<HTTPClientOptions>;
}
declare class HTTPClient<const Options extends HTTPClientOptions = any> implements IHTTPClient {
    protected config: Options;
    private _jwt;
    private _jwtExpiresAt;
    protected _baseURL: URL | undefined;
    constructor(config: Options);
    get baseURL(): URL | undefined;
    get jwt(): string | undefined;
    generateJWT(key: string): Promise<string>;
    genHeaders(): Promise<Record<string, string>>;
    fetch({ resource, searchParams, options, pathnameIdentity, }: {
        resource: APIResource;
        searchParams?: URLSearchParams;
        options?: RequestInit;
        pathnameIdentity?: string;
    }): Promise<any>;
    fetchRawResponse({ resource, searchParams, options, pathnameIdentity, }: {
        resource: APIResource;
        searchParams?: URLSearchParams;
        options?: RequestInit;
        pathnameIdentity?: string;
    }): Promise<Response>;
}

declare const ghostIdentitySchema: z.ZodObject<{
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    slug: string;
}, {
    id: string;
    slug: string;
}>;
declare const ghostIdentityInputSchema: z.ZodObject<{
    slug: z.ZodOptional<z.ZodString>;
    id: z.ZodOptional<z.ZodString>;
    email: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id?: string | undefined;
    slug?: string | undefined;
    email?: string | undefined;
}, {
    id?: string | undefined;
    slug?: string | undefined;
    email?: string | undefined;
}>;
type GhostIdentityInput = z.infer<typeof ghostIdentityInputSchema>;
type GhostIdentity = z.infer<typeof ghostIdentitySchema>;
declare const ghostMetaSchema: z.ZodObject<{
    pagination: z.ZodObject<{
        pages: z.ZodNumber;
        page: z.ZodNumber;
        limit: z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"all">]>;
        total: z.ZodNumber;
        prev: z.ZodNullable<z.ZodNumber>;
        next: z.ZodNullable<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        pages: number;
        page: number;
        limit: number | "all";
        total: number;
        prev: number | null;
        next: number | null;
    }, {
        pages: number;
        page: number;
        limit: number | "all";
        total: number;
        prev: number | null;
        next: number | null;
    }>;
}, "strip", z.ZodTypeAny, {
    pagination: {
        pages: number;
        page: number;
        limit: number | "all";
        total: number;
        prev: number | null;
        next: number | null;
    };
}, {
    pagination: {
        pages: number;
        page: number;
        limit: number | "all";
        total: number;
        prev: number | null;
        next: number | null;
    };
}>;
type GhostMeta = z.infer<typeof ghostMetaSchema>;
declare const ghostExcerptSchema: z.ZodObject<{
    excerpt: z.ZodOptional<z.ZodString>;
    custom_excerpt: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    excerpt?: string | undefined;
    custom_excerpt?: string | undefined;
}, {
    excerpt?: string | undefined;
    custom_excerpt?: string | undefined;
}>;
declare const ghostCodeInjectionSchema: z.ZodObject<{
    codeinjection_head: z.ZodNullable<z.ZodString>;
    codeinjection_foot: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
}, {
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
}>;
declare const ghostFacebookSchema: z.ZodObject<{
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
}, {
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
}>;
declare const ghostTwitterSchema: z.ZodObject<{
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
}, {
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
}>;
declare const ghostSocialMediaSchema: z.ZodObject<{
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
}, {
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
}>;
declare const ghostMetadataSchema: z.ZodObject<{
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    meta_title: string | null;
    meta_description: string | null;
}, {
    meta_title: string | null;
    meta_description: string | null;
}>;
declare const ghostVisibilitySchema: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
declare const apiVersionsSchema: z.ZodDefault<z.ZodString>;
type TAPIVersion<V> = V extends "v5.0" | `v5.${infer Minor}` ? `v5.${Minor}` : never;
type APIVersions = z.infer<typeof apiVersionsSchema>;
declare const contentAPICredentialsSchema: z.ZodObject<{
    key: z.ZodString;
    version: z.ZodDefault<z.ZodString>;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    version: string;
    url: string;
    key: string;
}, {
    url: string;
    key: string;
    version?: string | undefined;
}>;
type ContentAPICredentials = z.infer<typeof contentAPICredentialsSchema>;
type APIResource = "pages" | "posts" | "settings" | "authors" | "tiers" | "tags" | "members" | "site" | "offers" | "users" | "newsletters" | "webhooks" | "themes" | "files" | "images";
type APIEndpoint = "admin" | "content";
type APICredentials = {
    key: string;
    version: APIVersions;
    url: string;
};
type GhostRequestConfig = {
    endpoint: APIEndpoint;
    resource: APIResource;
    httpClient: HTTPClient;
};
declare const adminAPICredentialsSchema: z.ZodObject<{
    key: z.ZodString;
    version: z.ZodDefault<z.ZodString>;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    version: string;
    url: string;
    key: string;
}, {
    url: string;
    key: string;
    version?: string | undefined;
}>;
declare const slugOrIdSchema: z.ZodUnion<[z.ZodObject<{
    slug: z.ZodString;
}, "strip", z.ZodTypeAny, {
    slug: string;
}, {
    slug: string;
}>, z.ZodObject<{
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
}, {
    id: string;
}>]>;
declare const emailOrIdSchema: z.ZodUnion<[z.ZodObject<{
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
}, {
    email: string;
}>, z.ZodObject<{
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
}, {
    id: string;
}>]>;
declare const identitySchema: z.ZodUnion<[z.ZodObject<{
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
}, {
    email: string;
}>, z.ZodObject<{
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
}, {
    id: string;
}>, z.ZodObject<{
    slug: z.ZodString;
}, "strip", z.ZodTypeAny, {
    slug: string;
}, {
    slug: string;
}>]>;
type AdminAPICredentials = z.infer<typeof adminAPICredentialsSchema>;

declare const baseTagsSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodNullable<z.ZodString>;
    feature_image: z.ZodNullable<z.ZodString>;
    visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
    canonical_url: z.ZodNullable<z.ZodString>;
    accent_color: z.ZodNullable<z.ZodString>;
    url: z.ZodString;
    created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    count: z.ZodOptional<z.ZodObject<{
        posts: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        posts: number;
    }, {
        posts: number;
    }>>;
    twitter_image: z.ZodNullable<z.ZodString>;
    twitter_title: z.ZodNullable<z.ZodString>;
    twitter_description: z.ZodNullable<z.ZodString>;
    og_image: z.ZodNullable<z.ZodString>;
    og_title: z.ZodNullable<z.ZodString>;
    og_description: z.ZodNullable<z.ZodString>;
    codeinjection_head: z.ZodNullable<z.ZodString>;
    codeinjection_foot: z.ZodNullable<z.ZodString>;
    meta_title: z.ZodNullable<z.ZodString>;
    meta_description: z.ZodNullable<z.ZodString>;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    url: string;
    id: string;
    slug: string;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    name: string;
    description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    accent_color: string | null;
    count?: {
        posts: number;
    } | undefined;
    created_at?: string | null | undefined;
    updated_at?: string | null | undefined;
}, {
    url: string;
    id: string;
    slug: string;
    codeinjection_head: string | null;
    codeinjection_foot: string | null;
    og_image: string | null;
    og_title: string | null;
    og_description: string | null;
    twitter_image: string | null;
    twitter_title: string | null;
    twitter_description: string | null;
    meta_title: string | null;
    meta_description: string | null;
    name: string;
    description: string | null;
    feature_image: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    canonical_url: string | null;
    accent_color: string | null;
    count?: {
        posts: number;
    } | undefined;
    created_at?: string | null | undefined;
    updated_at?: string | null | undefined;
}>;

declare const baseTiersSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodNullable<z.ZodString>;
    active: z.ZodBoolean;
    type: z.ZodUnion<[z.ZodLiteral<"free">, z.ZodLiteral<"paid">]>;
    welcome_page_url: z.ZodNullable<z.ZodString>;
    created_at: z.ZodString;
    updated_at: z.ZodNullable<z.ZodString>;
    stripe_prices: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>, number[], number[] | undefined>;
    monthly_price: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | null, number | null | undefined>;
    yearly_price: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | null, number | null | undefined>;
    benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
    currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    trial_days: z.ZodDefault<z.ZodNumber>;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    slug: string;
    type: "paid" | "free";
    name: string;
    description: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    created_at: string;
    updated_at: string | null;
    active: boolean;
    welcome_page_url: string | null;
    stripe_prices: number[];
    monthly_price: number | null;
    yearly_price: number | null;
    trial_days: number;
    benefits?: string[] | undefined;
    currency?: string | null | undefined;
}, {
    id: string;
    slug: string;
    type: "paid" | "free";
    name: string;
    description: string | null;
    visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
    created_at: string;
    updated_at: string | null;
    active: boolean;
    welcome_page_url: string | null;
    stripe_prices?: number[] | undefined;
    monthly_price?: number | null | undefined;
    yearly_price?: number | null | undefined;
    benefits?: string[] | undefined;
    currency?: string | null | undefined;
    trial_days?: number | undefined;
}>;

declare const baseEmailSchema: z.ZodObject<{
    id: z.ZodString;
    uuid: z.ZodString;
    status: z.ZodString;
    recipient_filter: z.ZodString;
    error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    error_data: z.ZodNullable<z.ZodAny>;
    email_count: z.ZodNumber;
    delivered_count: z.ZodNumber;
    opened_count: z.ZodNumber;
    failed_count: z.ZodNumber;
    subject: z.ZodString;
    from: z.ZodString;
    reply_to: z.ZodNullable<z.ZodString>;
    source: z.ZodString;
    html: z.ZodNullable<z.ZodString>;
    plaintext: z.ZodNullable<z.ZodString>;
    track_opens: z.ZodBoolean;
    submitted_at: z.ZodString;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    status: string;
    created_at: string;
    updated_at: string;
    html: string | null;
    plaintext: string | null;
    uuid: string;
    recipient_filter: string;
    email_count: number;
    delivered_count: number;
    opened_count: number;
    failed_count: number;
    subject: string;
    from: string;
    reply_to: string | null;
    source: string;
    track_opens: boolean;
    submitted_at: string;
    error?: string | null | undefined;
    error_data?: any;
}, {
    id: string;
    status: string;
    created_at: string;
    updated_at: string;
    html: string | null;
    plaintext: string | null;
    uuid: string;
    recipient_filter: string;
    email_count: number;
    delivered_count: number;
    opened_count: number;
    failed_count: number;
    subject: string;
    from: string;
    reply_to: string | null;
    source: string;
    track_opens: boolean;
    submitted_at: string;
    error?: string | null | undefined;
    error_data?: any;
}>;

declare const baseOffersSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodDefault<z.ZodString>;
    code: z.ZodString;
    display_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    display_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    type: z.ZodUnion<[z.ZodLiteral<"percent">, z.ZodLiteral<"fixed">, z.ZodLiteral<"trial">]>;
    cadence: z.ZodUnion<[z.ZodLiteral<"month">, z.ZodLiteral<"year">]>;
    amount: z.ZodNumber;
    duration: z.ZodUnion<[z.ZodLiteral<"once">, z.ZodLiteral<"forever">, z.ZodLiteral<"repeating">, z.ZodLiteral<"trial">]>;
    duration_in_months: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    currency_restriction: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodUnion<[z.ZodLiteral<"active">, z.ZodLiteral<"archived">]>;
    redemption_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tier: z.ZodObject<{
        id: z.ZodString;
        name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name?: string | null | undefined;
    }, {
        id: string;
        name?: string | null | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    id: string;
    code: string;
    type: "percent" | "fixed" | "trial";
    status: "active" | "archived";
    name: string;
    cadence: "month" | "year";
    amount: number;
    duration: "trial" | "once" | "forever" | "repeating";
    tier: {
        id: string;
        name?: string | null | undefined;
    };
    currency?: string | null | undefined;
    display_title?: string | null | undefined;
    display_description?: string | null | undefined;
    duration_in_months?: number | null | undefined;
    currency_restriction?: boolean | null | undefined;
    redemption_count?: number | null | undefined;
}, {
    id: string;
    code: string;
    type: "percent" | "fixed" | "trial";
    status: "active" | "archived";
    cadence: "month" | "year";
    amount: number;
    duration: "trial" | "once" | "forever" | "repeating";
    tier: {
        id: string;
        name?: string | null | undefined;
    };
    name?: string | undefined;
    currency?: string | null | undefined;
    display_title?: string | null | undefined;
    display_description?: string | null | undefined;
    duration_in_months?: number | null | undefined;
    currency_restriction?: boolean | null | undefined;
    redemption_count?: number | null | undefined;
}>;

declare const baseMembersSchema: z.ZodObject<{
    id: z.ZodString;
    email: z.ZodString;
    name: z.ZodNullable<z.ZodString>;
    note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    geolocation: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    created_at: z.ZodString;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    labels: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        slug: z.ZodString;
        created_at: z.ZodString;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        name: string;
        created_at: string;
        updated_at?: string | null | undefined;
    }, {
        id: string;
        slug: string;
        name: string;
        created_at: string;
        updated_at?: string | null | undefined;
    }>, "many">;
    subscriptions: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        customer: z.ZodObject<{
            id: z.ZodString;
            name: z.ZodNullable<z.ZodString>;
            email: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            email: string;
            name: string | null;
        }, {
            id: string;
            email: string;
            name: string | null;
        }>;
        status: z.ZodString;
        start_date: z.ZodString;
        default_payment_card_last4: z.ZodNullable<z.ZodString>;
        cancel_at_period_end: z.ZodBoolean;
        cancellation_reason: z.ZodNullable<z.ZodString>;
        current_period_end: z.ZodString;
        price: z.ZodObject<{
            id: z.ZodString;
            price_id: z.ZodString;
            nickname: z.ZodString;
            amount: z.ZodNumber;
            interval: z.ZodString;
            type: z.ZodString;
            currency: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        }, {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        }>;
        tier: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            name: z.ZodString;
            description: z.ZodNullable<z.ZodString>;
            active: z.ZodBoolean;
            type: z.ZodUnion<[z.ZodLiteral<"free">, z.ZodLiteral<"paid">]>;
            welcome_page_url: z.ZodNullable<z.ZodString>;
            created_at: z.ZodString;
            updated_at: z.ZodNullable<z.ZodString>;
            stripe_prices: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>, number[], number[] | undefined>;
            monthly_price: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | null, number | null | undefined>;
            yearly_price: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | null, number | null | undefined>;
            benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">, z.ZodLiteral<"none">, z.ZodLiteral<"internal">, z.ZodLiteral<"paid">, z.ZodLiteral<"tiers">]>;
            currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            trial_days: z.ZodDefault<z.ZodNumber>;
            slug: z.ZodString;
            id: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices: number[];
            monthly_price: number | null;
            yearly_price: number | null;
            trial_days: number;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
        }, {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices?: number[] | undefined;
            monthly_price?: number | null | undefined;
            yearly_price?: number | null | undefined;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
            trial_days?: number | undefined;
        }>>>;
        offer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodDefault<z.ZodString>;
            code: z.ZodString;
            display_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            display_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            type: z.ZodUnion<[z.ZodLiteral<"percent">, z.ZodLiteral<"fixed">, z.ZodLiteral<"trial">]>;
            cadence: z.ZodUnion<[z.ZodLiteral<"month">, z.ZodLiteral<"year">]>;
            amount: z.ZodNumber;
            duration: z.ZodUnion<[z.ZodLiteral<"once">, z.ZodLiteral<"forever">, z.ZodLiteral<"repeating">, z.ZodLiteral<"trial">]>;
            duration_in_months: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            currency_restriction: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
            currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            status: z.ZodUnion<[z.ZodLiteral<"active">, z.ZodLiteral<"archived">]>;
            redemption_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            tier: z.ZodObject<{
                id: z.ZodString;
                name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            }, "strip", z.ZodTypeAny, {
                id: string;
                name?: string | null | undefined;
            }, {
                id: string;
                name?: string | null | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            name: string;
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        }, {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            name?: string | undefined;
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        status: string;
        customer: {
            id: string;
            email: string;
            name: string | null;
        };
        start_date: string;
        default_payment_card_last4: string | null;
        cancel_at_period_end: boolean;
        cancellation_reason: string | null;
        current_period_end: string;
        price: {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        };
        tier?: {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices: number[];
            monthly_price: number | null;
            yearly_price: number | null;
            trial_days: number;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
        } | null | undefined;
        offer?: {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            name: string;
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        } | null | undefined;
    }, {
        id: string;
        status: string;
        customer: {
            id: string;
            email: string;
            name: string | null;
        };
        start_date: string;
        default_payment_card_last4: string | null;
        cancel_at_period_end: boolean;
        cancellation_reason: string | null;
        current_period_end: string;
        price: {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        };
        tier?: {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices?: number[] | undefined;
            monthly_price?: number | null | undefined;
            yearly_price?: number | null | undefined;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
            trial_days?: number | undefined;
        } | null | undefined;
        offer?: {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            name?: string | undefined;
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        } | null | undefined;
    }>, "many">;
    avatar_image: z.ZodString;
    email_count: z.ZodNumber;
    email_opened_count: z.ZodNumber;
    email_open_rate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    status: z.ZodString;
    last_seen_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    newsletters: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        sender_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        sender_email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        sender_reply_to: z.ZodString;
        status: z.ZodUnion<[z.ZodLiteral<"active">, z.ZodLiteral<"archived">]>;
        visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">]>;
        subscribe_on_signup: z.ZodBoolean;
        sort_order: z.ZodNumber;
        header_image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        show_header_icon: z.ZodBoolean;
        show_header_title: z.ZodBoolean;
        title_font_category: z.ZodUnion<[z.ZodLiteral<"serif">, z.ZodLiteral<"sans_serif">]>;
        title_alignment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        show_feature_image: z.ZodBoolean;
        body_font_category: z.ZodUnion<[z.ZodLiteral<"serif">, z.ZodLiteral<"sans_serif">]>;
        footer_content: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        show_badge: z.ZodBoolean;
        created_at: z.ZodString;
        updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        show_header_name: z.ZodBoolean;
        uuid: z.ZodString;
        slug: z.ZodString;
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
        slug: string;
        status: "active" | "archived";
        name: string;
        visibility: "members" | "public";
        created_at: string;
        uuid: string;
        sender_reply_to: string;
        subscribe_on_signup: boolean;
        sort_order: number;
        show_header_icon: boolean;
        show_header_title: boolean;
        title_font_category: "serif" | "sans_serif";
        show_feature_image: boolean;
        body_font_category: "serif" | "sans_serif";
        show_badge: boolean;
        show_header_name: boolean;
        description?: string | null | undefined;
        updated_at?: string | null | undefined;
        sender_name?: string | null | undefined;
        sender_email?: string | null | undefined;
        header_image?: string | null | undefined;
        title_alignment?: string | null | undefined;
        footer_content?: string | null | undefined;
    }, {
        id: string;
        slug: string;
        status: "active" | "archived";
        name: string;
        visibility: "members" | "public";
        created_at: string;
        uuid: string;
        sender_reply_to: string;
        subscribe_on_signup: boolean;
        sort_order: number;
        show_header_icon: boolean;
        show_header_title: boolean;
        title_font_category: "serif" | "sans_serif";
        show_feature_image: boolean;
        body_font_category: "serif" | "sans_serif";
        show_badge: boolean;
        show_header_name: boolean;
        description?: string | null | undefined;
        updated_at?: string | null | undefined;
        sender_name?: string | null | undefined;
        sender_email?: string | null | undefined;
        header_image?: string | null | undefined;
        title_alignment?: string | null | undefined;
        footer_content?: string | null | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    newsletters: {
        id: string;
        slug: string;
        status: "active" | "archived";
        name: string;
        visibility: "members" | "public";
        created_at: string;
        uuid: string;
        sender_reply_to: string;
        subscribe_on_signup: boolean;
        sort_order: number;
        show_header_icon: boolean;
        show_header_title: boolean;
        title_font_category: "serif" | "sans_serif";
        show_feature_image: boolean;
        body_font_category: "serif" | "sans_serif";
        show_badge: boolean;
        show_header_name: boolean;
        description?: string | null | undefined;
        updated_at?: string | null | undefined;
        sender_name?: string | null | undefined;
        sender_email?: string | null | undefined;
        header_image?: string | null | undefined;
        title_alignment?: string | null | undefined;
        footer_content?: string | null | undefined;
    }[];
    id: string;
    status: string;
    email: string;
    name: string | null;
    created_at: string;
    email_count: number;
    labels: {
        id: string;
        slug: string;
        name: string;
        created_at: string;
        updated_at?: string | null | undefined;
    }[];
    subscriptions: {
        id: string;
        status: string;
        customer: {
            id: string;
            email: string;
            name: string | null;
        };
        start_date: string;
        default_payment_card_last4: string | null;
        cancel_at_period_end: boolean;
        cancellation_reason: string | null;
        current_period_end: string;
        price: {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        };
        tier?: {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices: number[];
            monthly_price: number | null;
            yearly_price: number | null;
            trial_days: number;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
        } | null | undefined;
        offer?: {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            name: string;
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        } | null | undefined;
    }[];
    avatar_image: string;
    email_opened_count: number;
    updated_at?: string | null | undefined;
    note?: string | null | undefined;
    geolocation?: string | null | undefined;
    email_open_rate?: number | null | undefined;
    last_seen_at?: string | null | undefined;
}, {
    newsletters: {
        id: string;
        slug: string;
        status: "active" | "archived";
        name: string;
        visibility: "members" | "public";
        created_at: string;
        uuid: string;
        sender_reply_to: string;
        subscribe_on_signup: boolean;
        sort_order: number;
        show_header_icon: boolean;
        show_header_title: boolean;
        title_font_category: "serif" | "sans_serif";
        show_feature_image: boolean;
        body_font_category: "serif" | "sans_serif";
        show_badge: boolean;
        show_header_name: boolean;
        description?: string | null | undefined;
        updated_at?: string | null | undefined;
        sender_name?: string | null | undefined;
        sender_email?: string | null | undefined;
        header_image?: string | null | undefined;
        title_alignment?: string | null | undefined;
        footer_content?: string | null | undefined;
    }[];
    id: string;
    status: string;
    email: string;
    name: string | null;
    created_at: string;
    email_count: number;
    labels: {
        id: string;
        slug: string;
        name: string;
        created_at: string;
        updated_at?: string | null | undefined;
    }[];
    subscriptions: {
        id: string;
        status: string;
        customer: {
            id: string;
            email: string;
            name: string | null;
        };
        start_date: string;
        default_payment_card_last4: string | null;
        cancel_at_period_end: boolean;
        cancellation_reason: string | null;
        current_period_end: string;
        price: {
            id: string;
            type: string;
            currency: string;
            amount: number;
            price_id: string;
            nickname: string;
            interval: string;
        };
        tier?: {
            id: string;
            slug: string;
            type: "paid" | "free";
            name: string;
            description: string | null;
            visibility: "tiers" | "members" | "public" | "none" | "internal" | "paid";
            created_at: string;
            updated_at: string | null;
            active: boolean;
            welcome_page_url: string | null;
            stripe_prices?: number[] | undefined;
            monthly_price?: number | null | undefined;
            yearly_price?: number | null | undefined;
            benefits?: string[] | undefined;
            currency?: string | null | undefined;
            trial_days?: number | undefined;
        } | null | undefined;
        offer?: {
            id: string;
            code: string;
            type: "percent" | "fixed" | "trial";
            status: "active" | "archived";
            cadence: "month" | "year";
            amount: number;
            duration: "trial" | "once" | "forever" | "repeating";
            tier: {
                id: string;
                name?: string | null | undefined;
            };
            name?: string | undefined;
            currency?: string | null | undefined;
            display_title?: string | null | undefined;
            display_description?: string | null | undefined;
            duration_in_months?: number | null | undefined;
            currency_restriction?: boolean | null | undefined;
            redemption_count?: number | null | undefined;
        } | null | undefined;
    }[];
    avatar_image: string;
    email_opened_count: number;
    updated_at?: string | null | undefined;
    note?: string | null | undefined;
    geolocation?: string | null | undefined;
    email_open_rate?: number | null | undefined;
    last_seen_at?: string | null | undefined;
}>;

declare const baseNewsletterSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sender_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sender_email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sender_reply_to: z.ZodString;
    status: z.ZodUnion<[z.ZodLiteral<"active">, z.ZodLiteral<"archived">]>;
    visibility: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"members">]>;
    subscribe_on_signup: z.ZodBoolean;
    sort_order: z.ZodNumber;
    header_image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    show_header_icon: z.ZodBoolean;
    show_header_title: z.ZodBoolean;
    title_font_category: z.ZodUnion<[z.ZodLiteral<"serif">, z.ZodLiteral<"sans_serif">]>;
    title_alignment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    show_feature_image: z.ZodBoolean;
    body_font_category: z.ZodUnion<[z.ZodLiteral<"serif">, z.ZodLiteral<"sans_serif">]>;
    footer_content: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    show_badge: z.ZodBoolean;
    created_at: z.ZodString;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    show_header_name: z.ZodBoolean;
    uuid: z.ZodString;
    slug: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    slug: string;
    status: "active" | "archived";
    name: string;
    visibility: "members" | "public";
    created_at: string;
    uuid: string;
    sender_reply_to: string;
    subscribe_on_signup: boolean;
    sort_order: number;
    show_header_icon: boolean;
    show_header_title: boolean;
    title_font_category: "serif" | "sans_serif";
    show_feature_image: boolean;
    body_font_category: "serif" | "sans_serif";
    show_badge: boolean;
    show_header_name: boolean;
    description?: string | null | undefined;
    updated_at?: string | null | undefined;
    sender_name?: string | null | undefined;
    sender_email?: string | null | undefined;
    header_image?: string | null | undefined;
    title_alignment?: string | null | undefined;
    footer_content?: string | null | undefined;
}, {
    id: string;
    slug: string;
    status: "active" | "archived";
    name: string;
    visibility: "members" | "public";
    created_at: string;
    uuid: string;
    sender_reply_to: string;
    subscribe_on_signup: boolean;
    sort_order: number;
    show_header_icon: boolean;
    show_header_title: boolean;
    title_font_category: "serif" | "sans_serif";
    show_feature_image: boolean;
    body_font_category: "serif" | "sans_serif";
    show_badge: boolean;
    show_header_name: boolean;
    description?: string | null | undefined;
    updated_at?: string | null | undefined;
    sender_name?: string | null | undefined;
    sender_email?: string | null | undefined;
    header_image?: string | null | undefined;
    title_alignment?: string | null | undefined;
    footer_content?: string | null | undefined;
}>;

declare const baseSiteSchema: z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    logo: z.ZodNullable<z.ZodString>;
    version: z.ZodString;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    version: string;
    url: string;
    description: string;
    title: string;
    logo: string | null;
}, {
    version: string;
    url: string;
    description: string;
    title: string;
    logo: string | null;
}>;

type Split<Str, Separator extends string> = Str extends `${infer Start}${Separator}${infer Rest}` ? [Start, ...Split<Rest, Separator>] : [Str];
type BrowseOrder<S, Shape> = S extends [infer Head, ...infer Tail] ? Tail extends [] ? OrderPredicate<Head, Shape> : `${OrderPredicate<Head, Shape>},${BrowseOrder<Tail, Shape>}` : S extends string ? OrderPredicate<S, Shape> : never;
type OrderPredicate<S, Shape> = S extends string ? S extends `${infer Field} ${infer Direction}` ? Field extends keyof Shape ? Direction extends "ASC" | "DESC" | "asc" | "desc" ? `${Field} ${Direction}` : never : never : S extends keyof Shape ? `${S}` : never : never;
type FilterQuerySeparator = "+" | "," | "(" | ")";
type FilterQueryOperators = `-` | `>` | `<` | `~`;
type FilterQuerySetOperators = `-`;
type FieldOrSubField<S> = S extends `${infer Field}.${string}` ? Field : S;
type BrowseFilter<S, Shape> = S extends string ? S extends `${infer Field}:${infer Rest}` ? FieldOrSubField<Field> extends keyof Shape ? Rest extends `${FilterQuerySetOperators}[${infer Values}]` ? `${Field}:${FilterQuerySetOperators}[${Values}]` : Rest extends `[${infer Values}]` ? `${Field}:[${Values}]` : Rest extends `${FilterQuerySetOperators}[${infer Values}]${FilterQuerySeparator}${infer NextQuery}` ? `${Field}:${FilterQuerySetOperators}[${Values}]${FilterQuerySeparator}${BrowseFilter<NextQuery, Shape>}` : Rest extends `[${infer Values}]${FilterQuerySeparator}${infer NextQuery}` ? `${Field}:[${Values}]${FilterQuerySeparator}${BrowseFilter<NextQuery, Shape>}` : Rest extends `${infer Value}${FilterQuerySeparator}${infer NextQuery}` ? `${Field}:${Value}${FilterQuerySeparator}${BrowseFilter<NextQuery, Shape>}` : Rest extends `${infer Value}` ? Value extends string ? `${Field}:${Value}` : never : S : never : never : never;
type BrowseParams<P, Shape> = P extends {
    order: infer Order;
} ? P extends {
    filter: infer Filter;
} ? Omit<P, "order" | "filter"> & {
    order: BrowseOrder<Split<Order, ",">, Shape>;
} & {
    filter: BrowseFilter<Filter, Shape>;
} : Omit<P, "order"> & {
    order: BrowseOrder<Split<Order, ",">, Shape>;
} : P extends {
    filter: infer Filter;
} ? Omit<P, "filter"> & {
    filter: BrowseFilter<Filter, Shape>;
} : P;
declare const browseParamsSchema: z.ZodObject<{
    order: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"all">, z.ZodEffects<z.ZodNumber, number, number>]>>;
    page: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
    filter: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    filter?: string | undefined;
    page?: number | undefined;
    limit?: number | "all" | undefined;
    order?: string | undefined;
}, {
    filter?: string | undefined;
    page?: number | undefined;
    limit?: number | "all" | undefined;
    order?: string | undefined;
}>;
type BrowseParamsSchema = z.infer<typeof browseParamsSchema>;
declare const parseBrowseParams: <P, Shape extends z.ZodRawShape, IncludeShape extends z.ZodRawShape>(args: P, schema: z.ZodObject<Shape>, includeSchema?: z.ZodObject<IncludeShape>) => {
    filter?: string | undefined;
    page?: number | undefined;
    limit?: number | "all" | undefined;
    order?: string | undefined;
};

type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>;

declare type Mask<Obj> = {
  [k in keyof Obj]?: true;
};

declare type InferResponseDataShape<T> = T extends { success: true; data: infer D } ? D : never;

declare type InferFetcherDataShape<T extends { fetch: () => Promise<any> }> = InferResponseDataShape<
  Awaited<ReturnType<T["fetch"]>>
>;

type IsAny<T> = 0 extends 1 & T ? true : false;

type ContentFormats = "html" | "mobiledoc" | "plaintext" | "lexical";

declare class BrowseFetcher<const Resource extends APIResource = any, Params extends BrowseParamsSchema = any, Fields extends Mask<OutputShape> = any, BaseShape extends ZodRawShape = any, OutputShape extends ZodRawShape = any, IncludeShape extends ZodRawShape = any> {
    protected resource: Resource;
    protected config: {
        schema: z.ZodObject<BaseShape>;
        output: z.ZodObject<OutputShape>;
        include: z.ZodObject<IncludeShape>;
    };
    private _params;
    protected httpClient: HTTPClient;
    protected _urlParams: Record<string, string>;
    protected _urlSearchParams: URLSearchParams | undefined;
    protected _includeFields: (keyof IncludeShape)[];
    constructor(resource: Resource, config: {
        schema: z.ZodObject<BaseShape>;
        output: z.ZodObject<OutputShape>;
        include: z.ZodObject<IncludeShape>;
    }, _params: {
        browseParams?: Params;
        include?: (keyof IncludeShape)[];
        fields?: Fields;
        formats?: string[];
    }, httpClient: HTTPClient);
    /**
     * Lets you choose output format for the content of Post and Pages resources
     * The choices are html, mobiledoc or plaintext. It will transform the output of the fetcher to a new shape
     * with the selected formats required.
     *
     * @param formats html, mobiledoc or plaintext
     * @returns A new Fetcher with the fixed output shape and the formats specified
     */
    formats<Formats extends Mask<Pick<OutputShape, ContentFormats>>>(formats: z.noUnrecognized<Formats, OutputShape>): BrowseFetcher<Resource, Params, Fields, BaseShape, { [k_1 in z.objectUtil.noNeverKeys<{ [k in keyof OutputShape]: k extends keyof Formats | Exclude<keyof Formats, keyof Formats> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }>]: k_1 extends keyof OutputShape ? { [k in keyof OutputShape]: k extends keyof Formats | Exclude<keyof Formats, keyof Formats> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }[k_1] : never; }, IncludeShape>;
    /**
     * Let's you include special keys into the Ghost API Query to retrieve complimentary info
     * The available keys are defined by the Resource include schema, will not care about unknown keys.
     * Returns a new Fetcher with an Output shape modified with the include keys required.
     *
     * @param include Include specific keys from the include shape
     * @returns A new Fetcher with the fixed output shape and the formats specified
     */
    include<Includes extends Mask<IncludeShape>>(include: z.noUnrecognized<Includes, IncludeShape>): BrowseFetcher<Resource, Params, Fields, BaseShape, { [k_1 in z.objectUtil.noNeverKeys<{ [k in keyof OutputShape]: k extends keyof Includes | Exclude<keyof Includes, keyof Includes> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }>]: k_1 extends keyof OutputShape ? { [k in keyof OutputShape]: k extends keyof Includes | Exclude<keyof Includes, keyof Includes> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }[k_1] : never; }, IncludeShape>;
    /**
     * Let's you strip the output to only the specified keys of your choice that are in the config Schema
     * Will not care about unknown keys and return a new Fetcher with an Output shape with only the selected keys.
     *
     * @param fields Any keys from the resource Schema
     * @returns A new Fetcher with the fixed output shape having only the selected Fields
     */
    fields<Fields extends Mask<OutputShape>>(fields: z.noUnrecognized<Fields, OutputShape>): BrowseFetcher<Resource, Params, Fields_1, BaseShape, Pick<OutputShape, Extract<keyof OutputShape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>, IncludeShape>;
    getResource(): Resource;
    getParams(): {
        browseParams?: Params | undefined;
        include?: (keyof IncludeShape)[] | undefined;
        fields?: Fields | undefined;
        formats?: string[] | undefined;
    };
    getOutputFields(): string[];
    getURLSearchParams(): URLSearchParams | undefined;
    getIncludes(): (keyof IncludeShape)[];
    getFormats(): string[];
    private _buildUrlParams;
    private _urlBrowseParams;
    private _getResultSchema;
    fetch(options?: RequestInit): Promise<{
        success: true;
        meta: {
            pagination: {
                pages: number;
                page: number;
                limit: number | "all";
                total: number;
                prev: number | null;
                next: number | null;
            };
        };
        data: (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never)[];
    } | {
        success: false;
        errors: {
            message: string;
            type: string;
        }[];
    }>;
    paginate(options?: RequestInit): Promise<{
        current: {
            success: true;
            meta: {
                pagination: {
                    pages: number;
                    page: number;
                    limit: number | "all";
                    total: number;
                    prev: number | null;
                    next: number | null;
                };
            };
            data: (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never)[];
        } | {
            success: false;
            errors: {
                message: string;
                type: string;
            }[];
        };
        next: BrowseFetcher<Resource, Params, Fields, BaseShape, OutputShape, IncludeShape> | undefined;
    }>;
}

declare class ReadFetcher<const Resource extends APIResource = any, Fields extends Mask<OutputShape> = any, BaseShape extends ZodRawShape = any, OutputShape extends ZodRawShape = any, IncludeShape extends ZodRawShape = any> {
    protected resource: Resource;
    protected config: {
        schema: z.ZodObject<BaseShape>;
        output: z.ZodObject<OutputShape>;
        include: z.ZodObject<IncludeShape>;
    };
    private _params;
    protected httpClient: HTTPClient;
    protected _urlParams: Record<string, string>;
    protected _urlSearchParams: URLSearchParams | undefined;
    protected _pathnameIdentity: string | undefined;
    protected _includeFields: (keyof IncludeShape)[];
    constructor(resource: Resource, config: {
        schema: z.ZodObject<BaseShape>;
        output: z.ZodObject<OutputShape>;
        include: z.ZodObject<IncludeShape>;
    }, _params: {
        identity: GhostIdentityInput;
        include?: (keyof IncludeShape)[];
        fields?: Fields;
        formats?: string[];
    }, httpClient: HTTPClient);
    /**
     * Lets you choose output format for the content of Post and Pages resources
     * The choices are html, mobiledoc or plaintext. It will transform the output of the fetcher to a new shape
     * with the selected formats required.
     *
     * @param formats html, mobiledoc or plaintext
     * @returns A new Fetcher with the fixed output shape and the formats specified
     */
    formats<Formats extends Mask<Pick<OutputShape, ContentFormats>>>(formats: z.noUnrecognized<Formats, OutputShape>): ReadFetcher<Resource, Fields, BaseShape, { [k_1 in z.objectUtil.noNeverKeys<{ [k in keyof OutputShape]: k extends keyof Formats | Exclude<keyof Formats, keyof Formats> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }>]: k_1 extends keyof OutputShape ? { [k in keyof OutputShape]: k extends keyof Formats | Exclude<keyof Formats, keyof Formats> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }[k_1] : never; }, IncludeShape>;
    /**
     * Let's you include special keys into the Ghost API Query to retrieve complimentary info
     * The available keys are defined by the Resource include schema, will not care about unknown keys.
     * Returns a new Fetcher with an Output shape modified with the include keys required.
     *
     * @param include Include specific keys from the include shape
     * @returns A new Fetcher with the fixed output shape and the formats specified
     */
    include<Includes extends Mask<IncludeShape>>(include: z.noUnrecognized<Includes, IncludeShape>): ReadFetcher<Resource, Fields, BaseShape, { [k_1 in z.objectUtil.noNeverKeys<{ [k in keyof OutputShape]: k extends keyof Includes | Exclude<keyof Includes, keyof Includes> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }>]: k_1 extends keyof OutputShape ? { [k in keyof OutputShape]: k extends keyof Includes | Exclude<keyof Includes, keyof Includes> ? z.deoptional<OutputShape[k]> : OutputShape[k]; }[k_1] : never; }, IncludeShape>;
    /**
     * Let's you strip the output to only the specified keys of your choice that are in the config Schema
     * Will not care about unknown keys and return a new Fetcher with an Output shape with only the selected keys.
     *
     * @param fields Any keys from the resource Schema
     * @returns A new Fetcher with the fixed output shape having only the selected Fields
     */
    fields<Fields extends Mask<OutputShape>>(fields: z.noUnrecognized<Fields, OutputShape>): ReadFetcher<Resource, Fields_1, BaseShape, Pick<OutputShape, Extract<keyof OutputShape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>, IncludeShape>;
    getResource(): Resource;
    getParams(): {
        identity: {
            id?: string | undefined;
            slug?: string | undefined;
            email?: string | undefined;
        };
        include?: (keyof IncludeShape)[] | undefined;
        fields?: Fields | undefined;
        formats?: string[] | undefined;
    };
    getOutputFields(): string[];
    getIncludes(): (keyof IncludeShape)[];
    getFormats(): string[];
    private _buildUrlParams;
    fetch(options?: RequestInit): Promise<{ [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<OutputShape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never, z.baseObjectInputType<OutputShape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<OutputShape>[k_1]; } : never>;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<OutputShape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never, z.baseObjectInputType<OutputShape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<OutputShape>[k_1]; } : never>;
    }>, any>[k_2]; } | {
        success: false;
        errors: {
            message: string;
            type: string;
        }[];
    }>;
}

declare class BasicFetcher<const Resource extends APIResource = any, OutputShape extends ZodTypeAny = any> {
    protected resource: Resource;
    protected config: {
        output: OutputShape;
    };
    protected httpClient: HTTPClient;
    constructor(resource: Resource, config: {
        output: OutputShape;
    }, httpClient: HTTPClient);
    getResource(): Resource;
    fetch(options?: RequestInit): Promise<{ [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: OutputShape;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: OutputShape;
    }>, any>[k]; } | {
        success: false;
        errors: {
            message: string;
            type: string;
        }[];
    }>;
}

declare class MutationFetcher<const Resource extends APIResource = any, OutputShape extends ZodRawShape = any, ParamsShape extends ZodTypeAny = any, const HTTPVerb extends "POST" | "PUT" = "POST"> {
    protected resource: Resource;
    protected config: {
        output: z.ZodObject<OutputShape>;
        paramsShape?: ParamsShape;
    };
    private _params;
    protected _options: {
        method: HTTPVerb;
        body: Record<string, unknown>;
    };
    protected httpClient: HTTPClient;
    protected _urlParams: Record<string, string>;
    protected _urlSearchParams: URLSearchParams | undefined;
    protected _pathnameIdentity: string | undefined;
    constructor(resource: Resource, config: {
        output: z.ZodObject<OutputShape>;
        paramsShape?: ParamsShape;
    }, _params: ({
        id?: string;
    } & ParamsShape["_output"]) | undefined, _options: {
        method: HTTPVerb;
        body: Record<string, unknown>;
    }, httpClient: HTTPClient);
    getResource(): Resource;
    getParams(): ({
        id?: string | undefined;
    } & ParamsShape["_output"]) | undefined;
    private _buildUrlParams;
    submit(): Promise<{ [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<OutputShape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never, z.baseObjectInputType<OutputShape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<OutputShape>[k_1]; } : never>;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<OutputShape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<OutputShape>, any>[k]; } : never, z.baseObjectInputType<OutputShape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<OutputShape>[k_1]; } : never>;
    }>, any>[k_2]; } | {
        success: false;
        errors: {
            message: string;
            type: string;
            context?: string | null | undefined;
        }[];
    }>;
}

declare class DeleteFetcher<const Resource extends APIResource = any> {
    protected resource: Resource;
    private _params;
    protected httpClient: HTTPClient;
    protected _pathnameIdentity: string | undefined;
    constructor(resource: Resource, _params: {
        id: string;
    }, httpClient: HTTPClient);
    getResource(): Resource;
    getParams(): {
        id: string;
    };
    private _buildPathnameIdentity;
    submit(): Promise<{
        success: true;
    } | {
        success: false;
        errors: {
            message: string;
            type: string;
            context?: string | null | undefined;
        }[];
    }>;
}

/**
 * API Composer contains all methods, pick and choose.
 */
declare class APIComposer<const Resource extends APIResource = any, Shape extends ZodRawShape = any, IdentityShape extends z.ZodTypeAny = any, IncludeShape extends ZodRawShape = any, CreateShape extends ZodTypeAny = any, CreateOptions extends ZodTypeAny = any, UpdateShape extends ZodTypeAny = any, UpdateOptions extends ZodTypeAny = any> {
    protected resource: Resource;
    protected config: {
        schema: z.ZodObject<Shape>;
        identitySchema: IdentityShape;
        include: z.ZodObject<IncludeShape>;
        createSchema?: CreateShape;
        createOptionsSchema?: CreateOptions;
        updateSchema?: UpdateShape;
        updateOptionsSchema?: UpdateOptions;
    };
    protected httpClientFactory: HTTPClientFactory;
    constructor(resource: Resource, config: {
        schema: z.ZodObject<Shape>;
        identitySchema: IdentityShape;
        include: z.ZodObject<IncludeShape>;
        createSchema?: CreateShape;
        createOptionsSchema?: CreateOptions;
        updateSchema?: UpdateShape;
        updateOptionsSchema?: UpdateOptions;
    }, httpClientFactory: HTTPClientFactory);
    /**
     * Browse function that accepts browse params order, filter, page and limit. Will return an instance
     * of BrowseFetcher class.
     */
    browse<const OrderStr extends string, const FilterStr extends string, const P extends {
        order?: OrderStr;
        limit?: number | "all";
        page?: number | string;
        filter?: FilterStr;
    }>(options?: BrowseParams<P, Shape & IncludeShape>): BrowseFetcher<Resource, {
        filter?: string | undefined;
        page?: number | undefined;
        limit?: number | "all" | undefined;
        order?: string | undefined;
    }, any, Shape, Shape, IncludeShape>;
    /**
     * Read function that accepts Identify fields like id, slug or email. Will return an instance
     * of ReadFetcher class.
     */
    read(options: z.infer<IdentityShape>): ReadFetcher<Resource, any, Shape, Shape, IncludeShape>;
    add(data: z.input<CreateShape>, options?: z.infer<CreateOptions>): Promise<{ [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<Shape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any>[k]; } : never, z.baseObjectInputType<Shape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Shape>[k_1]; } : never>;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<Shape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any>[k]; } : never, z.baseObjectInputType<Shape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Shape>[k_1]; } : never>;
    }>, any>[k_2]; } | {
        success: false;
        errors: {
            message: string;
            type: string;
            context?: string | null | undefined;
        }[];
    }>;
    edit(id: string, data: IsAny<UpdateShape> extends true ? Partial<z.input<CreateShape>> : z.input<UpdateShape>, options?: z.infer<UpdateOptions>): Promise<{ [k_2 in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<Shape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any>[k]; } : never, z.baseObjectInputType<Shape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Shape>[k_1]; } : never>;
    }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
        success: z.ZodLiteral<true>;
        data: z.ZodObject<Shape, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape>, any>[k]; } : never, z.baseObjectInputType<Shape> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Shape>[k_1]; } : never>;
    }>, any>[k_2]; } | {
        success: false;
        errors: {
            message: string;
            type: string;
            context?: string | null | undefined;
        }[];
    }>;
    delete(id: string): Promise<{
        success: true;
    } | {
        success: false;
        errors: {
            message: string;
            type: string;
            context?: string | null | undefined;
        }[];
    }>;
    access<const Keys extends keyof this>(keys: Keys[]): Pick<this, Keys>;
}

/**
 * Parse a Fields object and generate a new Output Schema
 *
 * @param schema Base Resource Schema
 * @param fields Object containing fields to be picked with true as value
 * @returns new schema with only the fields specified in the fields object
 */
declare const schemaWithPickedFields: <Shape extends z.ZodRawShape, Fields extends Mask<Shape>>(schema: z.ZodObject<Shape>, fields?: Fields) => z.ZodObject<Pick<Shape, Extract<keyof Shape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Pick<Shape, Extract<keyof Shape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Pick<Shape, Extract<keyof Shape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>>, any>[k]; } : never, z.baseObjectInputType<Pick<Shape, Extract<keyof Shape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Pick<Shape, Extract<keyof Shape, keyof Fields | Exclude<keyof Fields, keyof Fields>>>>[k_1]; } : never>;

export { APIComposer, type APICredentials, type APIEndpoint, type APIResource, type APIVersions, type AdminAPICredentials, BasicFetcher, BrowseFetcher, type BrowseFilter, type BrowseOrder, type BrowseParams, type BrowseParamsSchema, type ContentAPICredentials, DeleteFetcher, type Exactly, type FieldOrSubField, type FilterQueryOperators, type FilterQuerySeparator, type FilterQuerySetOperators, type GhostIdentity, type GhostIdentityInput, type GhostMeta, type GhostRequestConfig, HTTPClient, HTTPClientFactory, type HTTPClientOptions, type IHTTPClient, type IHTTPClientFactory, type InferFetcherDataShape, type InferResponseDataShape, type IsAny, type Mask, MutationFetcher, type OrderPredicate, ReadFetcher, type TAPIVersion, adminAPICredentialsSchema, apiVersionsSchema, baseAuthorsSchema, baseEmailSchema, baseMembersSchema, baseNewsletterSchema, baseOffersSchema, basePagesSchema, basePostsSchema, baseSettingsSchema, baseSiteSchema, baseTagsSchema, baseTiersSchema, browseParamsSchema, contentAPICredentialsSchema, emailOrIdSchema, ghostCodeInjectionSchema, ghostExcerptSchema, ghostFacebookSchema, ghostIdentityInputSchema, ghostIdentitySchema, ghostMetaSchema, ghostMetadataSchema, ghostSocialMediaSchema, ghostTwitterSchema, ghostVisibilitySchema, identitySchema, parseBrowseParams, schemaWithPickedFields, slugOrIdSchema };
