import { ReactElement, ReactNode } from 'react';
import { z } from 'zod';
import { RenderProp as BaseRenderProp } from '../util/renderProp';
export declare const specZ: z.ZodObject<{
    tabKey: z.ZodString;
    name: z.ZodString;
    closable: z.ZodOptional<z.ZodBoolean>;
    icon: z.ZodOptional<z.ZodUnknown>;
    editable: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    tabKey: string;
    editable?: boolean | undefined;
    icon?: unknown;
    closable?: boolean | undefined;
}, {
    name: string;
    tabKey: string;
    editable?: boolean | undefined;
    icon?: unknown;
    closable?: boolean | undefined;
}>;
export interface Spec extends Omit<z.infer<typeof specZ>, "icon"> {
    icon?: ReactElement | unknown;
}
export declare const tabZ: z.ZodObject<z.objectUtil.extendShape<{
    tabKey: z.ZodString;
    name: z.ZodString;
    closable: z.ZodOptional<z.ZodBoolean>;
    icon: z.ZodOptional<z.ZodUnknown>;
    editable: z.ZodOptional<z.ZodBoolean>;
}, {
    content: z.ZodOptional<z.ZodUnknown>;
}>, "strip", z.ZodTypeAny, {
    name: string;
    tabKey: string;
    content?: unknown;
    editable?: boolean | undefined;
    icon?: unknown;
    closable?: boolean | undefined;
}, {
    name: string;
    tabKey: string;
    content?: unknown;
    editable?: boolean | undefined;
    icon?: unknown;
    closable?: boolean | undefined;
}>;
export interface Tab extends Spec {
    content?: ReactNode | unknown;
}
export type RenderProp = BaseRenderProp<Tab>;
//# sourceMappingURL=types.d.ts.map