import type { PickClassStyleFn, RendererPropsData, RendererSpec, Schema, SchemaSlot, SchemaSlots } from 'jamis-core';
import type { RenderSlotBodyType, RendererProps, SchemaExpression } from '../types';
export declare const makePickClassStyle: (slots: Schema["slots"], data?: RendererPropsData) => PickClassStyleFn;
export declare const enhancePickClassStyle: (originPickClassStyle: PickClassStyleFn, slots: Schema["slots"], data?: RendererPropsData) => PickClassStyleFn;
export declare const wrapHasSlotBody: (slots: SchemaSlots | undefined, scope: RendererProps["data"] | undefined) => (classNameParam: string | string[], dataParam?: RendererPropsData) => boolean;
export declare const makeRenderSlotBody: (slots: Record<string, SchemaExpression | SchemaSlot | undefined> | undefined, render: RendererProps["render"], spec: RendererSpec, scope: RendererProps["data"] | undefined) => RenderSlotBodyType;
/**
 *
 * 给renderSlotBody函数补充data到props
 *
 * @param renderFn
 * @param data
 * @returns
 */
export declare const curriedDataToRenderSlotBody: (renderFn: RendererProps["renderSlotBody"], data: RendererProps["data"]) => RenderSlotBodyType;
export declare const renderSlotBodyNoop: (...args: any[]) => null;
export declare const useSchemaSlots: (slots: Record<string, SchemaExpression | SchemaSlot | undefined> | undefined, render: RendererProps["render"], spec: RendererSpec, scope: RendererProps["data"] | undefined) => {
    pickClassStyle: PickClassStyleFn;
    hasSlotBody: (classNameParam: string | string[], dataParam?: RendererPropsData) => boolean;
    renderSlotBody: RenderSlotBodyType;
};
