/**
 * Minimal JSON Schema typings for array/object schemas used in generateSchemaFromItems
 */
export type JsonSchemaProperty = {
    type: 'string' | 'integer' | 'number' | 'boolean' | 'object' | 'array' | 'null';
    properties?: Record<string, JsonSchemaProperty>;
    items?: JsonSchemaProperty;
};
export type JsonSchemaObject = {
    type: 'object';
    properties: Record<string, JsonSchemaProperty>;
};
export type JsonSchemaArray = {
    type: 'array';
    items: JsonSchemaObject | JsonSchemaProperty;
};
/**
 * Options for schema generation
 */
export type SchemaGenerationOptions = {
    /** Maximum number of items to use for schema generation. Default is 5. */
    limit?: number;
    /** If true, uses only non-empty items and skips hidden fields. Default is true. */
    clean?: boolean;
    /** Strategy for handling arrays. "first" uses first item as template, "all" merges all items. Default is "all". */
    arrayMode?: 'first' | 'all';
};
/**
 * Function to recursively remove empty arrays from an object
 */
export declare function removeEmptyArrays(obj: unknown): unknown;
/**
 * Generates a JSON schema from dataset items with configurable options
 *
 * @param datasetItems - Array of dataset items to generate schema from
 * @param options - Configuration options for schema generation
 * @returns JSON schema object or null if generation fails
 */
export declare function generateSchemaFromItems(datasetItems: unknown[], options?: SchemaGenerationOptions): JsonSchemaArray | null;
//# sourceMappingURL=schema_generation.d.ts.map