/**
 * Zod schemas for TinyCloud notification and modal types.
 *
 * These schemas provide runtime validation for toast notifications,
 * notification configuration, and modal types. Types are derived from
 * schemas using z.infer<>.
 *
 * @packageDocumentation
 */
import { z } from "zod";
/**
 * Toast notification type.
 */
export declare const ToastTypeSchema: z.ZodEnum<["success", "error", "warning", "info", "loading"]>;
export type ToastType = z.infer<typeof ToastTypeSchema>;
/**
 * Toast position on screen.
 */
export declare const ToastPositionSchema: z.ZodEnum<["top-left", "top-center", "top-right", "bottom-left", "bottom-center", "bottom-right"]>;
export type ToastPosition = z.infer<typeof ToastPositionSchema>;
/**
 * Action button for a toast notification.
 */
export declare const ToastActionSchema: z.ZodObject<{
    label: z.ZodString;
    onClick: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
    label?: string;
    onClick?: (...args: unknown[]) => unknown;
}, {
    label?: string;
    onClick?: (...args: unknown[]) => unknown;
}>;
export type ToastAction = z.infer<typeof ToastActionSchema>;
/**
 * Toast notification.
 */
export declare const ToastSchema: z.ZodObject<{
    id: z.ZodString;
    type: z.ZodEnum<["success", "error", "warning", "info", "loading"]>;
    title: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    duration: z.ZodOptional<z.ZodNumber>;
    action: z.ZodOptional<z.ZodObject<{
        label: z.ZodString;
        onClick: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
    }, "strip", z.ZodTypeAny, {
        label?: string;
        onClick?: (...args: unknown[]) => unknown;
    }, {
        label?: string;
        onClick?: (...args: unknown[]) => unknown;
    }>>;
    timestamp: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    description?: string;
    type?: "error" | "success" | "warning" | "info" | "loading";
    id?: string;
    title?: string;
    duration?: number;
    action?: {
        label?: string;
        onClick?: (...args: unknown[]) => unknown;
    };
    timestamp?: number;
}, {
    description?: string;
    type?: "error" | "success" | "warning" | "info" | "loading";
    id?: string;
    title?: string;
    duration?: number;
    action?: {
        label?: string;
        onClick?: (...args: unknown[]) => unknown;
    };
    timestamp?: number;
}>;
export type Toast = z.infer<typeof ToastSchema>;
/**
 * Toast configuration.
 */
export declare const ToastConfigSchema: z.ZodObject<{
    position: z.ZodOptional<z.ZodEnum<["top-left", "top-center", "top-right", "bottom-left", "bottom-center", "bottom-right"]>>;
    duration: z.ZodOptional<z.ZodNumber>;
    maxVisible: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    duration?: number;
    position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
    maxVisible?: number;
}, {
    duration?: number;
    position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
    maxVisible?: number;
}>;
export type ToastConfig = z.infer<typeof ToastConfigSchema>;
/**
 * Notification configuration.
 */
export declare const NotificationConfigSchema: z.ZodObject<{
    popups: z.ZodOptional<z.ZodBoolean>;
    throwErrors: z.ZodOptional<z.ZodBoolean>;
    position: z.ZodOptional<z.ZodEnum<["top-left", "top-center", "top-right", "bottom-left", "bottom-center", "bottom-right"]>>;
    duration: z.ZodOptional<z.ZodNumber>;
    maxVisible: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    duration?: number;
    position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
    maxVisible?: number;
    popups?: boolean;
    throwErrors?: boolean;
}, {
    duration?: number;
    position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
    maxVisible?: number;
    popups?: boolean;
    throwErrors?: boolean;
}>;
export type NotificationConfig = z.infer<typeof NotificationConfigSchema>;
/**
 * SDK error detail.
 */
export declare const SDKErrorDetailSchema: z.ZodObject<{
    category: z.ZodString;
    message: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    description?: string;
    message?: string;
    category?: string;
}, {
    description?: string;
    message?: string;
    category?: string;
}>;
export type SDKErrorDetail = z.infer<typeof SDKErrorDetailSchema>;
/**
 * SDK event detail.
 */
export declare const SDKEventDetailSchema: z.ZodObject<{
    message: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    description?: string;
    message?: string;
}, {
    description?: string;
    message?: string;
}>;
export type SDKEventDetail = z.infer<typeof SDKEventDetailSchema>;
/**
 * Options for the space creation modal.
 */
export declare const SpaceCreationModalOptionsSchema: z.ZodObject<{
    /** Async function called when user clicks "Create Space" */
    onCreateSpace: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
    /** Optional callback when modal is dismissed */
    onDismiss: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
    onCreateSpace?: (...args: unknown[]) => unknown;
    onDismiss?: (...args: unknown[]) => unknown;
}, {
    onCreateSpace?: (...args: unknown[]) => unknown;
    onDismiss?: (...args: unknown[]) => unknown;
}>;
export type SpaceCreationModalOptions = z.infer<typeof SpaceCreationModalOptionsSchema>;
/**
 * Result from the space creation modal.
 */
export declare const SpaceCreationResultSchema: z.ZodObject<{
    /** Whether space creation was successful */
    success: z.ZodBoolean;
    /** Whether the modal was dismissed without creating */
    dismissed: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    success?: boolean;
    dismissed?: boolean;
}, {
    success?: boolean;
    dismissed?: boolean;
}>;
export type SpaceCreationResult = z.infer<typeof SpaceCreationResultSchema>;
/**
 * Validation error type.
 */
export interface ValidationError {
    code: string;
    message: string;
    issues?: unknown[];
}
/**
 * Result type for validation operations.
 */
export type ValidationResult<T> = {
    ok: true;
    data: T;
} | {
    ok: false;
    error: ValidationError;
};
/**
 * Validates Toast.
 */
export declare function validateToast(data: unknown): ValidationResult<Toast>;
/**
 * Validates ToastConfig.
 */
export declare function validateToastConfig(data: unknown): ValidationResult<ToastConfig>;
/**
 * Validates NotificationConfig.
 */
export declare function validateNotificationConfig(data: unknown): ValidationResult<NotificationConfig>;
/**
 * Validates SpaceCreationModalOptions.
 */
export declare function validateSpaceCreationModalOptions(data: unknown): ValidationResult<SpaceCreationModalOptions>;
/**
 * Validates SpaceCreationResult.
 */
export declare function validateSpaceCreationResult(data: unknown): ValidationResult<SpaceCreationResult>;
/**
 * Validates SDKErrorDetail.
 */
export declare function validateSDKErrorDetail(data: unknown): ValidationResult<SDKErrorDetail>;
//# sourceMappingURL=types.schema.d.ts.map