/**
 * General quantum operations for graph elements
 */
import { QuantumObject, IOperator, IStateVector } from '../../core/types';
import { QuantumGraph } from '../QuantumGraph';
import { MeasurementResult } from '../types';
/**
 * Apply quantum operation to arbitrary subset of graph elements
 */
export declare function applyQuantumOperation(graph: QuantumGraph, elementIds: string[], operator: IOperator): void;
/**
 * Extract quantum state from subset of graph elements
 */
export declare function extractSubsystemState(graph: QuantumGraph, elementIds: string[]): QuantumObject[];
/**
 * Insert quantum state into subset of graph elements
 */
export declare function insertSubsystemState(graph: QuantumGraph, elementIds: string[], newState: QuantumObject): void;
/**
 * Perform partial measurement on subset of graph elements
 */
export declare function partialMeasurement(graph: QuantumGraph, elementIds: string[], projector?: IOperator): MeasurementResult;
/**
 * Check if elements form a valid subsystem
 */
export declare function validateSubsystem(graph: QuantumGraph, elementIds: string[]): boolean;
/**
 * Get dimension of subsystem
 */
export declare function getSubsystemDimension(graph: QuantumGraph, elementIds: string[]): number;
/**
 * Create tensor product of multiple quantum states
 */
export declare function tensorProductStates(states: IStateVector[]): IStateVector;
/**
 * Split composite state into individual components
 */
export declare function splitCompositeState(compositeState: IStateVector, subsystemDimensions: number[]): IStateVector[];
