import numpy as np
from .multi_handler import MultiChannelHandler as MultiChannelHandler
from _typeshed import Incomplete

class MultiChannelData:
    multi_channel_handler: Incomplete
    def __init__(self, data: np.ndarray | dict[str, np.ndarray]) -> None: ...
    def is_multi_channel(self) -> bool: ...
    def get_data(self) -> np.ndarray | dict[str, np.ndarray]: ...
    def get_channels(self): ...
    def stack(self): ...
    def unstack(self, stacked_data, keys_order, channel_counts) -> None: ...
    def apply_on_stacked(self, func): ...
    def apply_projection(self, projection): ...
    def preprocess(self, preprocess_func): ...
    def get_shape(self): ...
    def data_clone(self) -> np.ndarray | dict[str, np.ndarray]: ...
    def set_type(self) -> None: ...
