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

import typing_extensions
from ..core.serialization import FieldMetadata
from ..types.extract_chunking_options_chunk_selection_strategy import ExtractChunkingOptionsChunkSelectionStrategy
from ..types.extract_chunking_options_chunking_strategy import ExtractChunkingOptionsChunkingStrategy


class ExtractChunkingOptionsParams(typing_extensions.TypedDict):
    chunking_strategy: typing_extensions.NotRequired[
        typing_extensions.Annotated[ExtractChunkingOptionsChunkingStrategy, 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[
            ExtractChunkingOptionsChunkSelectionStrategy, 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.
    """
