/**
 * @copyright Sister Software
 * @license AGPL-3.0
 * @author Teffen Ellis, et al.
 */
import type { Span } from "mailwoman/core/tokenization";
import type { Classification } from "./Classification.js";
/**
 * A configuration for a classifier scheme.
 */
export interface ClassifierSchemeConfig {
    classification?: Classification;
    /**
     * The confidence level of the classification.
     *
     * @default 1
     */
    confidence?: number;
    /**
     * A list of criteria that must be met for the classification to be applied.
     */
    scheme: ClassifierSchemeCriteria[];
}
export interface ClassifierSchemeCriteria {
    /**
     * ID for the sub-classification.
     */
    classification?: Classification;
    /**
     * The classification labels that must be present in the token.
     */
    is: Classification[];
    /**
     * The classification labels that must not be present in the token.
     */
    not?: Classification[];
    /**
     * Confidence level for the criteria.
     */
    confidence?: number;
}
/**
 * Determine if a phrase matches a classifier scheme.
 */
export declare function phraseMatchesScheme({ is, not }: ClassifierSchemeCriteria, phrase: Span): boolean;
//# sourceMappingURL=scheme.d.ts.map