import * as react_jsx_runtime from 'react/jsx-runtime';
import * as zod from 'zod';
import { z } from 'zod';
import { FormInstance } from 'antd';
import * as react from 'react';

declare const ButtonRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "button";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            code?: string | undefined;
            params?: Record<string, any> | undefined;
            text?: string | undefined;
            buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
            modal?: {
                title: string;
                data?: Record<string, any> | undefined;
                body?: any[] | undefined;
                width?: number | undefined;
            } | undefined;
            action?: "modal" | "download" | undefined;
            data?: any;
            method?: "GET" | "POST" | undefined;
            url?: string | undefined;
            body?: Record<string, any> | undefined;
            showLoading?: boolean | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const CardRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "card";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            title?: string | undefined;
            extra?: any[] | undefined;
        } & {
            body?: zod.TypeOf<zod.ZodLazy<zod.ZodArray<zod.ZodAny, "many">>>;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const DatePickerRenderer: {
    (props: object & {
        data: {
            type: "date-picker";
            label: string;
            name: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            value?: any;
            preserve?: boolean | undefined;
            span?: number | undefined;
            rules?: {
                type?: "string" | "number" | "boolean" | "integer" | undefined;
                message?: string | undefined;
                required?: boolean | undefined;
                min?: number | undefined;
                max?: number | undefined;
            }[] | undefined;
            showTime?: boolean | undefined;
            showNow?: boolean | undefined;
            showWeek?: boolean | undefined;
            utc?: boolean | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const DateRangeRenderer: {
    (props: object & {
        data: {
            type: "date-range";
            label: string;
            name: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            value?: any;
            preserve?: boolean | undefined;
            span?: number | undefined;
            rules?: {
                type?: "string" | "number" | "boolean" | "integer" | undefined;
                message?: string | undefined;
                required?: boolean | undefined;
                min?: number | undefined;
                max?: number | undefined;
            }[] | undefined;
            showTime?: boolean | undefined;
            utc?: boolean | undefined;
            allowEmpty?: [boolean, boolean] | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const DescriptionsRenderer: {
    (props: object & {
        data: {
            type: "descriptions";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            title?: string | undefined;
            dataIndex?: string | undefined;
            dataSource?: any;
            column?: number | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const DivRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "div";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            body?: any[] | undefined;
            style?: Record<string, any> | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const FlexRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "flex";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            body?: any[] | undefined;
            style?: Record<string, any> | undefined;
            vertical?: boolean | undefined;
            wrap?: boolean | undefined;
            justify?: "flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly" | undefined;
            align?: "flex-start" | "center" | "flex-end" | "baseline" | "stretch" | undefined;
            gap?: string | number | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const FormRenderer: {
    (props: {
        form?: FormInstance;
        externalStoreId?: string;
    } & {
        data: {
            type: "form";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            name?: string | undefined;
            preserve?: boolean | undefined;
            fields?: any[] | undefined;
            initialValues?: Record<string, any> | undefined;
            layout?: "vertical" | "horizontal" | "inline" | undefined;
            labelWidth?: string | number | undefined;
            labelAlign?: "left" | "right" | undefined;
            clearOnDestroy?: boolean | undefined;
            gutter?: number | [number, number] | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const InfiniteListRenderer: {
    (props: object & {
        data: {
            type: "infinite-list";
            url: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            code?: string | undefined;
            params?: Record<string, any> | undefined;
            extra?: any[] | undefined;
            fields?: any[] | undefined;
            initialValues?: Record<string, any> | undefined;
            gutter?: number | [number, number] | undefined;
            actions?: {
                type: "button";
                storeId?: string | undefined;
                storeIdRef?: string | undefined;
                code?: string | undefined;
                params?: Record<string, any> | undefined;
                text?: string | undefined;
                buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
                modal?: {
                    title: string;
                    data?: Record<string, any> | undefined;
                    body?: any[] | undefined;
                    width?: number | undefined;
                } | undefined;
                action?: "modal" | "download" | undefined;
                data?: any;
                method?: "GET" | "POST" | undefined;
                url?: string | undefined;
                body?: Record<string, any> | undefined;
                showLoading?: boolean | undefined;
            }[] | undefined;
            formLayout?: "vertical" | "horizontal" | "inline" | undefined;
            rowKey?: string | undefined;
            columns?: {
                title: string;
                width?: string | number | undefined;
                dataIndex?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
                tpl?: string | undefined;
            }[] | undefined;
            footer?: any[] | undefined;
            tableLayout?: "fixed" | "auto" | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const InputNumberRenderer: {
    (props: object & {
        data: {
            type: "input-number";
            label: string;
            name: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            value?: any;
            width?: string | undefined;
            preserve?: boolean | undefined;
            span?: number | undefined;
            min?: number | undefined;
            max?: number | undefined;
            rules?: {
                type?: "string" | "number" | "boolean" | "integer" | undefined;
                message?: string | undefined;
                required?: boolean | undefined;
                min?: number | undefined;
                max?: number | undefined;
            }[] | undefined;
            clearable?: boolean | undefined;
            step?: number | undefined;
            controls?: boolean | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const InputTextRenderer: {
    (props: object & {
        data: {
            type: "input-text";
            label: string;
            name: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            value?: any;
            preserve?: boolean | undefined;
            span?: number | undefined;
            rules?: {
                type?: "string" | "number" | "boolean" | "integer" | undefined;
                message?: string | undefined;
                required?: boolean | undefined;
                min?: number | undefined;
                max?: number | undefined;
            }[] | undefined;
            clearable?: boolean | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const LinkRenderer: {
    (props: object & {
        data: {
            type: "link";
            href: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            params?: Record<string, any> | undefined;
            text?: string | undefined;
            target?: "_blank" | "_self" | "_parent" | "_top" | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const QueryListRenderer: {
    (props: object & {
        data: {
            type: "query-list";
            url: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            code?: string | undefined;
            params?: Record<string, any> | undefined;
            method?: "GET" | "POST" | undefined;
            body?: Record<string, any> | undefined;
            extra?: any[] | undefined;
            fields?: any[] | undefined;
            initialValues?: Record<string, any> | undefined;
            gutter?: number | [number, number] | undefined;
            actions?: {
                type: "button";
                storeId?: string | undefined;
                storeIdRef?: string | undefined;
                code?: string | undefined;
                params?: Record<string, any> | undefined;
                text?: string | undefined;
                buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
                modal?: {
                    title: string;
                    data?: Record<string, any> | undefined;
                    body?: any[] | undefined;
                    width?: number | undefined;
                } | undefined;
                action?: "modal" | "download" | undefined;
                data?: any;
                method?: "GET" | "POST" | undefined;
                url?: string | undefined;
                body?: Record<string, any> | undefined;
                showLoading?: boolean | undefined;
            }[] | undefined;
            formLayout?: "vertical" | "horizontal" | "inline" | undefined;
            rowKey?: string | undefined;
            columns?: {
                title: string;
                width?: string | number | undefined;
                dataIndex?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
                tpl?: string | undefined;
            }[] | undefined;
            footer?: any[] | undefined;
            tableLayout?: "fixed" | "auto" | undefined;
            identifier?: string | undefined;
            onePage?: boolean | undefined;
            headers?: Record<string, any> | undefined;
            buttonsAlign?: "left" | "right" | "bottom" | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const SelectRenderer: {
    (props: object & {
        data: {
            type: "select";
            label: string;
            name: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            value?: any;
            options?: {
                value: string;
                label: string;
            }[] | undefined;
            width?: string | undefined;
            preserve?: boolean | undefined;
            span?: number | undefined;
            rules?: {
                type?: "string" | "number" | "boolean" | "integer" | undefined;
                message?: string | undefined;
                required?: boolean | undefined;
                min?: number | undefined;
                max?: number | undefined;
            }[] | undefined;
            allowClear?: boolean | undefined;
            virtual?: boolean | undefined;
            showSearch?: boolean | undefined;
            optionFilterProp?: string | undefined;
            source?: string | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const ServiceRenderer: {
    (props: object & {
        data: {
            type: "service";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            params?: Record<string, any> | undefined;
            method?: "GET" | "POST" | undefined;
            url?: string | undefined;
            body?: any;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const SpanRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "span";
            text: string;
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const TableRenderer: {
    (props: {
        source?: object;
    } & {
        data: {
            type: "table";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            data?: string | any[] | undefined;
            rowKey?: string | undefined;
            columns?: {
                title: string;
                width?: string | number | undefined;
                dataIndex?: string | undefined;
                align?: "center" | "left" | "right" | undefined;
                tpl?: string | undefined;
            }[] | undefined;
            footer?: any[] | undefined;
            api?: string | undefined;
            bordered?: boolean | undefined;
            size?: "small" | "middle" | "large" | undefined;
            tableLayout?: "fixed" | "auto" | undefined;
            pagination?: false | {
                current?: number | undefined;
                pageSize?: number | undefined;
                total?: number | undefined;
            } | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const ViewportRenderer: {
    (props: object & {
        data: {
            type: "viewport";
            storeId?: string | undefined;
            storeIdRef?: string | undefined;
            data?: Record<string, any> | undefined;
            body?: any[] | undefined;
        };
    }): react_jsx_runtime.JSX.Element | null;
    displayName: string;
};

declare const baseSchema: z.ZodObject<{
    type: z.ZodString;
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    type: string;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
}, {
    type: string;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
}>;
type BaseSchema = z.infer<typeof baseSchema>;

declare const buttonSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"button">;
    code: z.ZodOptional<z.ZodString>;
    buttonType: z.ZodOptional<z.ZodEnum<["primary", "default", "dashed", "link", "text"]>>;
    action: z.ZodOptional<z.ZodEnum<["modal", "download"]>>;
    text: z.ZodOptional<z.ZodString>;
    data: z.ZodOptional<z.ZodAny>;
    method: z.ZodOptional<z.ZodEnum<["GET", "POST"]>>;
    url: z.ZodOptional<z.ZodString>;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    showLoading: z.ZodDefault<z.ZodBoolean>;
    modal: z.ZodOptional<z.ZodObject<{
        title: z.ZodString;
        body: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
        data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        width: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    }, {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    type: "button";
    showLoading: boolean;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
}, {
    type: "button";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
    showLoading?: boolean | undefined;
}>, {
    type: "button";
    showLoading: boolean;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
}, {
    type: "button";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
    showLoading?: boolean | undefined;
}>, {
    type: "button";
    showLoading: boolean;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
}, {
    type: "button";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    code?: string | undefined;
    params?: Record<string, any> | undefined;
    text?: string | undefined;
    buttonType?: "primary" | "default" | "dashed" | "link" | "text" | undefined;
    modal?: {
        title: string;
        data?: Record<string, any> | undefined;
        body?: any[] | undefined;
        width?: number | undefined;
    } | undefined;
    action?: "modal" | "download" | undefined;
    data?: any;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: Record<string, any> | undefined;
    showLoading?: boolean | undefined;
}>;
type ButtonSchema = z.infer<typeof buttonSchema>;

declare const baseCardSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"card">;
    title: z.ZodOptional<z.ZodString>;
    extra: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
}, "strip", z.ZodTypeAny, {
    type: "card";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    title?: string | undefined;
    extra?: any[] | undefined;
}, {
    type: "card";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    title?: string | undefined;
    extra?: any[] | undefined;
}>;
declare const cardBodySchema: z.ZodLazy<z.ZodArray<z.ZodAny, "many">>;
type Card = z.infer<typeof baseCardSchema> & {
    body?: z.infer<typeof cardBodySchema>;
};
declare const cardSchema: z.ZodType<Card>;
type CardSchema = z.infer<typeof cardSchema>;

declare const formSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"form">;
    name: z.ZodOptional<z.ZodString>;
    preserve: z.ZodOptional<z.ZodBoolean>;
    fields: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
    initialValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    layout: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"horizontal">, z.ZodLiteral<"inline">, z.ZodLiteral<"vertical">]>>;
    labelWidth: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
    labelAlign: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
    clearOnDestroy: z.ZodOptional<z.ZodBoolean>;
    gutter: z.ZodDefault<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
}, "strip", z.ZodTypeAny, {
    type: "form";
    layout: "vertical" | "horizontal" | "inline";
    gutter: number | [number, number];
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    name?: string | undefined;
    preserve?: boolean | undefined;
    fields?: any[] | undefined;
    initialValues?: Record<string, any> | undefined;
    labelWidth?: string | number | undefined;
    labelAlign?: "left" | "right" | undefined;
    clearOnDestroy?: boolean | undefined;
}, {
    type: "form";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    name?: string | undefined;
    preserve?: boolean | undefined;
    fields?: any[] | undefined;
    initialValues?: Record<string, any> | undefined;
    layout?: "vertical" | "horizontal" | "inline" | undefined;
    labelWidth?: string | number | undefined;
    labelAlign?: "left" | "right" | undefined;
    clearOnDestroy?: boolean | undefined;
    gutter?: number | [number, number] | undefined;
}>;
type FormSchema = z.infer<typeof formSchema>;

declare const inputNumberSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
    label: z.ZodString;
    name: z.ZodString;
    preserve: z.ZodOptional<z.ZodBoolean>;
    span: z.ZodOptional<z.ZodNumber>;
    value: z.ZodOptional<z.ZodAny>;
    rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodEnum<["string", "number", "boolean", "integer"]>>;
        required: z.ZodOptional<z.ZodBoolean>;
        message: z.ZodOptional<z.ZodString>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, "many">>;
} & {
    type: z.ZodLiteral<"input-number">;
    clearable: z.ZodOptional<z.ZodBoolean>;
    min: z.ZodOptional<z.ZodNumber>;
    max: z.ZodOptional<z.ZodNumber>;
    step: z.ZodOptional<z.ZodNumber>;
    width: z.ZodDefault<z.ZodString>;
    controls: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type: "input-number";
    width: string;
    label: string;
    name: string;
    controls: boolean;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    value?: any;
    preserve?: boolean | undefined;
    span?: number | undefined;
    min?: number | undefined;
    max?: number | undefined;
    rules?: {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }[] | undefined;
    clearable?: boolean | undefined;
    step?: number | undefined;
}, {
    type: "input-number";
    label: string;
    name: string;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    value?: any;
    width?: string | undefined;
    preserve?: boolean | undefined;
    span?: number | undefined;
    min?: number | undefined;
    max?: number | undefined;
    rules?: {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }[] | undefined;
    clearable?: boolean | undefined;
    step?: number | undefined;
    controls?: boolean | undefined;
}>;
type InputNumberSchema = z.infer<typeof inputNumberSchema>;

declare const inputTextSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
    label: z.ZodString;
    name: z.ZodString;
    preserve: z.ZodOptional<z.ZodBoolean>;
    span: z.ZodOptional<z.ZodNumber>;
    value: z.ZodOptional<z.ZodAny>;
    rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodEnum<["string", "number", "boolean", "integer"]>>;
        required: z.ZodOptional<z.ZodBoolean>;
        message: z.ZodOptional<z.ZodString>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, "many">>;
} & {
    type: z.ZodLiteral<"input-text">;
    clearable: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type: "input-text";
    label: string;
    name: string;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    value?: any;
    preserve?: boolean | undefined;
    span?: number | undefined;
    rules?: {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }[] | undefined;
    clearable?: boolean | undefined;
}, {
    type: "input-text";
    label: string;
    name: string;
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    value?: any;
    preserve?: boolean | undefined;
    span?: number | undefined;
    rules?: {
        type?: "string" | "number" | "boolean" | "integer" | undefined;
        message?: string | undefined;
        required?: boolean | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }[] | undefined;
    clearable?: boolean | undefined;
}>;
type InputTextSchema = z.infer<typeof inputTextSchema>;

declare const serviceSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"service">;
    method: z.ZodOptional<z.ZodEnum<["GET", "POST"]>>;
    url: z.ZodOptional<z.ZodString>;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    body: z.ZodOptional<z.ZodAny>;
}, "strip", z.ZodTypeAny, {
    type: "service";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    params?: Record<string, any> | undefined;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: any;
}, {
    type: "service";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    params?: Record<string, any> | undefined;
    method?: "GET" | "POST" | undefined;
    url?: string | undefined;
    body?: any;
}>;
type ServiceSchema = z.infer<typeof serviceSchema>;

declare const tableSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"table">;
    rowKey: z.ZodOptional<z.ZodString>;
    columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
        title: z.ZodString;
        dataIndex: z.ZodOptional<z.ZodString>;
        width: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
        align: z.ZodOptional<z.ZodEnum<["left", "right", "center"]>>;
        tpl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        title: string;
        width?: string | number | undefined;
        dataIndex?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
        tpl?: string | undefined;
    }, {
        title: string;
        width?: string | number | undefined;
        dataIndex?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
        tpl?: string | undefined;
    }>, "many">>;
    footer: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
    api: z.ZodOptional<z.ZodString>;
    data: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodAny, "many">, z.ZodString]>>;
    bordered: z.ZodOptional<z.ZodBoolean>;
    size: z.ZodDefault<z.ZodEnum<["small", "middle", "large"]>>;
    tableLayout: z.ZodOptional<z.ZodEnum<["fixed", "auto"]>>;
    pagination: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<false>, z.ZodObject<{
        current: z.ZodOptional<z.ZodNumber>;
        pageSize: z.ZodOptional<z.ZodNumber>;
        total: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        current?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    }, {
        current?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    }>]>>;
}, "strip", z.ZodTypeAny, {
    type: "table";
    size: "small" | "middle" | "large";
    pagination: false | {
        current?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    };
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    data?: string | any[] | undefined;
    rowKey?: string | undefined;
    columns?: {
        title: string;
        width?: string | number | undefined;
        dataIndex?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
        tpl?: string | undefined;
    }[] | undefined;
    footer?: any[] | undefined;
    api?: string | undefined;
    bordered?: boolean | undefined;
    tableLayout?: "fixed" | "auto" | undefined;
}, {
    type: "table";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    data?: string | any[] | undefined;
    rowKey?: string | undefined;
    columns?: {
        title: string;
        width?: string | number | undefined;
        dataIndex?: string | undefined;
        align?: "center" | "left" | "right" | undefined;
        tpl?: string | undefined;
    }[] | undefined;
    footer?: any[] | undefined;
    api?: string | undefined;
    bordered?: boolean | undefined;
    size?: "small" | "middle" | "large" | undefined;
    tableLayout?: "fixed" | "auto" | undefined;
    pagination?: false | {
        current?: number | undefined;
        pageSize?: number | undefined;
        total?: number | undefined;
    } | undefined;
}>;
type TableSchema = z.infer<typeof tableSchema>;

declare const viewportSchema: z.ZodObject<{
    storeId: z.ZodOptional<z.ZodString>;
    storeIdRef: z.ZodOptional<z.ZodString>;
} & {
    type: z.ZodLiteral<"viewport">;
    body: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
    data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
    type: "viewport";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    data?: Record<string, any> | undefined;
    body?: any[] | undefined;
}, {
    type: "viewport";
    storeId?: string | undefined;
    storeIdRef?: string | undefined;
    data?: Record<string, any> | undefined;
    body?: any[] | undefined;
}>;
type ViewportSchema = z.infer<typeof viewportSchema>;

/**
 * 渲染 schema 数组
 * @param array - schema 数组
 * @param source - 外部数据源，传递给子组件
 * @returns 渲染的组件数组
 */
declare function renderArray<T extends BaseSchema, S extends object>(array?: T[], source?: S): (react_jsx_runtime.JSX.Element | null)[] | undefined;

interface SchemaRendererProps {
    schema?: ViewportSchema;
}
declare const SchemaRenderer: react.ForwardRefExoticComponent<SchemaRendererProps & react.RefAttributes<any>>;

export { type BaseSchema, ButtonRenderer, type ButtonSchema, CardRenderer, type CardSchema, DatePickerRenderer, DateRangeRenderer, DescriptionsRenderer, DivRenderer, FlexRenderer, FormRenderer, type FormSchema, InfiniteListRenderer, InputNumberRenderer, type InputNumberSchema, InputTextRenderer, type InputTextSchema, LinkRenderer, QueryListRenderer, SchemaRenderer, SelectRenderer, ServiceRenderer, type ServiceSchema, SpanRenderer, TableRenderer, type TableSchema, ViewportRenderer, type ViewportSchema, baseSchema, buttonSchema, cardSchema, formSchema, inputNumberSchema, inputTextSchema, renderArray, serviceSchema, tableSchema, viewportSchema };
