import { z } from "zod";
import type { ChannelDocument, ChannelPHState } from "./types.js";
/** Schema for validating the header object of a Channel document */
export declare const ChannelDocumentHeaderSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    createdAtUtcIso: z.ZodString;
    lastModifiedAtUtcIso: z.ZodString;
    documentType: z.ZodLiteral<"powerchat/channel">;
}, z.core.$strip>;
/** Schema for validating the state object of a Channel document */
export declare const ChannelPHStateSchema: z.ZodObject<{
    global: z.ZodObject<Required<{
        channelType: z.ZodType<import("./types.js").ChannelType, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelType, unknown>>;
        description: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
        name: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
        participants: z.ZodType<import("./types.js").Participant[], unknown, z.core.$ZodTypeInternals<import("./types.js").Participant[], unknown>>;
        topic: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
        visibility: z.ZodType<import("./types.js").ChannelVisibility, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelVisibility, unknown>>;
    }>, z.core.$strip>;
}, z.core.$strip>;
export declare const ChannelDocumentSchema: z.ZodObject<{
    header: z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        createdAtUtcIso: z.ZodString;
        lastModifiedAtUtcIso: z.ZodString;
        documentType: z.ZodLiteral<"powerchat/channel">;
    }, z.core.$strip>;
    state: z.ZodObject<{
        global: z.ZodObject<Required<{
            channelType: z.ZodType<import("./types.js").ChannelType, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelType, unknown>>;
            description: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            name: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            participants: z.ZodType<import("./types.js").Participant[], unknown, z.core.$ZodTypeInternals<import("./types.js").Participant[], unknown>>;
            topic: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            visibility: z.ZodType<import("./types.js").ChannelVisibility, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelVisibility, unknown>>;
        }>, z.core.$strip>;
    }, z.core.$strip>;
    initialState: z.ZodObject<{
        global: z.ZodObject<Required<{
            channelType: z.ZodType<import("./types.js").ChannelType, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelType, unknown>>;
            description: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            name: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            participants: z.ZodType<import("./types.js").Participant[], unknown, z.core.$ZodTypeInternals<import("./types.js").Participant[], unknown>>;
            topic: z.ZodType<import("./types.js").Maybe<string>, unknown, z.core.$ZodTypeInternals<import("./types.js").Maybe<string>, unknown>>;
            visibility: z.ZodType<import("./types.js").ChannelVisibility, unknown, z.core.$ZodTypeInternals<import("./types.js").ChannelVisibility, unknown>>;
        }>, z.core.$strip>;
    }, z.core.$strip>;
}, z.core.$strip>;
/** Simple helper function to check if a state object is a Channel document state object */
export declare function isChannelState(state: unknown): state is ChannelPHState;
/** Simple helper function to assert that a document state object is a Channel document state object */
export declare function assertIsChannelState(state: unknown): asserts state is ChannelPHState;
/** Simple helper function to check if a document is a Channel document */
export declare function isChannelDocument(document: unknown): document is ChannelDocument;
/** Simple helper function to assert that a document is a Channel document */
export declare function assertIsChannelDocument(document: unknown): asserts document is ChannelDocument;
//# sourceMappingURL=document-schema.d.ts.map