/**
 * Multi-type quantum composition operations
 */
import { HilbertSpace } from '../core/hilbertSpace';
import { IOperator } from '../core/types';
import { IStateVector } from '../core/types';
/**
 * Composes multiple Hilbert spaces via tensor product
 */
export declare function composeSpaces(spaces: HilbertSpace[]): HilbertSpace;
/**
 * Composes multiple state vectors via tensor product
 */
export declare function composeStates(states: IStateVector[]): IStateVector;
/**
 * Composes multiple operators via tensor product
 */
export declare function composeOperators(operators: IOperator[]): IOperator;
/**
 * Creates a bipartite split of a Hilbert space
 */
export declare function bipartiteSplit(space: HilbertSpace, firstDimension: number): [HilbertSpace, HilbertSpace];
/**
 * Wrapper for partial trace operation that handles composite systems.
 * This function provides a convenient interface for performing partial trace
 * operations on composite quantum systems.
 *
 * @param operator - The quantum operator to perform partial trace on
 * @param dims - Array of dimensions for each subsystem
 * @param traceOutIndices - Indices of subsystems to trace out
 * @returns Reduced operator after tracing out specified subsystems
 */
export declare function partialTrace(operator: IOperator, dims: number[], traceOutIndices: number[]): IOperator;
