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

import typing_extensions
from ..core.serialization import FieldMetadata
from ..types.legacy_extract_chunking_options_chunk_selection_strategy import (
    LegacyExtractChunkingOptionsChunkSelectionStrategy,
)
from ..types.legacy_extract_chunking_options_chunking_strategy import LegacyExtractChunkingOptionsChunkingStrategy


class LegacyExtractChunkingOptionsParams(typing_extensions.TypedDict):
    chunking_strategy: typing_extensions.NotRequired[
        typing_extensions.Annotated[
            LegacyExtractChunkingOptionsChunkingStrategy, FieldMetadata(alias="chunkingStrategy")
        ]
    ]
    """
    The strategy to use for chunking the document.
    """

    page_chunk_size: typing_extensions.NotRequired[
        typing_extensions.Annotated[int, FieldMetadata(alias="pageChunkSize")]
    ]
    """
    The size of page chunks.
    """

    chunk_selection_strategy: typing_extensions.NotRequired[
        typing_extensions.Annotated[
            LegacyExtractChunkingOptionsChunkSelectionStrategy, FieldMetadata(alias="chunkSelectionStrategy")
        ]
    ]
    """
    The strategy to use for selecting chunks.
    """

    custom_semantic_chunking_rules: typing_extensions.NotRequired[
        typing_extensions.Annotated[str, FieldMetadata(alias="customSemanticChunkingRules")]
    ]
    """
    Custom rules for semantic chunking.
    """
