# This file was auto-generated by Fern from our API Definition.

import typing

import typing_extensions
from ..core.serialization import FieldMetadata
from ..types.legacy_classification_config_base_processor import LegacyClassificationConfigBaseProcessor
from .legacy_classification import LegacyClassificationParams
from .legacy_classification_advanced_options import LegacyClassificationAdvancedOptionsParams
from .parse_config import ParseConfigParams


class LegacyClassificationConfigParams(typing_extensions.TypedDict):
    base_processor: typing_extensions.NotRequired[
        typing_extensions.Annotated[LegacyClassificationConfigBaseProcessor, FieldMetadata(alias="baseProcessor")]
    ]
    """
    The base processor to use. For classifiers, this must be either `"classification_performance"` or `"classification_light"`. See [Classification Changelog](/changelog/classification/classification-performance) for more details.
    """

    base_version: typing_extensions.NotRequired[typing_extensions.Annotated[str, FieldMetadata(alias="baseVersion")]]
    """
    The version of the `"classification_performance"` or `"classification_light"` processor to use. If this is provided, the `baseProcessor` must also be provided. See [Classification Changelog](/changelog/classification/classification-performance) for more details.
    """

    classifications: typing.Sequence[LegacyClassificationParams]
    """
    Array of possible classifications for the document.
    """

    classification_rules: typing_extensions.NotRequired[
        typing_extensions.Annotated[str, FieldMetadata(alias="classificationRules")]
    ]
    """
    Custom rules to guide the classification process in natural language.
    """

    advanced_options: typing_extensions.NotRequired[
        typing_extensions.Annotated[LegacyClassificationAdvancedOptionsParams, FieldMetadata(alias="advancedOptions")]
    ]
    """
    Advanced configuration options.
    """

    parser: typing_extensions.NotRequired[ParseConfigParams]
    """
    Configuration options for the parsing process.
    """
