import type { JSONSchema7 } from 'json-schema';
/**
 * Configuration options for schema filtering during import.
 */
export interface SchemaFilteringOptions {
    /**
     * Whether to exclude schemas that are empty objects with no properties.
     * Default: false
     */
    excludeEmptyObjects?: boolean;
    /**
     * Whether to exclude schemas that only serve as conceptual markers.
     * These are typically schemas with only type: "object" and description
     * but no properties, constraints, or meaningful structure.
     * Default: false
     */
    excludeConceptualMarkers?: boolean;
    /**
     * Custom predicate function to determine if a schema should be excluded.
     * Return true to exclude the schema from import.
     */
    customExclusionFilter?: (schema: JSONSchema7, schemaId?: string) => boolean;
    /**
     * List of schema IDs to explicitly exclude.
     */
    excludeSchemaIds?: string[];
    /**
     * Patterns to match against schema titles or IDs for exclusion.
     */
    excludePatterns?: RegExp[];
}
/**
 * Strategy class for determining which schemas should be filtered out during import.
 */
export declare class SchemaFilteringStrategy {
    private options;
    constructor(options?: SchemaFilteringOptions);
    /**
     * Determines whether a schema should be excluded from import.
     */
    shouldExcludeSchema(schema: JSONSchema7, schemaId?: string): boolean;
    /**
     * Checks if a schema represents an empty object with no meaningful structure.
     */
    private isEmptyObjectSchema;
    /**
     * Checks if a schema is likely a conceptual marker with no structural value.
     */
    private isConceptualMarkerSchema;
    /**
     * Gets a human-readable reason why a schema was excluded.
     */
    getExclusionReason(schema: JSONSchema7, schemaId?: string): string;
}
/**
 * Predefined filtering strategies for common use cases.
 */
export declare const FILTERING_STRATEGIES: {
    /**
     * Strategy for API modeling - excludes schemas that don't contribute to API structure.
     */
    readonly API_MODELING: SchemaFilteringStrategy;
    /**
     * Strategy for database modeling - very strict, only includes schemas with concrete properties.
     */
    readonly DATABASE_MODELING: SchemaFilteringStrategy;
    /**
     * Conservative strategy - only excludes obviously empty schemas.
     */
    readonly CONSERVATIVE: SchemaFilteringStrategy;
};
//# sourceMappingURL=SchemaFilteringStrategy.d.ts.map