/**
 * Measurement operations for quantum states
 */
import { Complex, IOperator, IMeasurementOutcome } from '../core/types';
import { StateVector } from '../states/stateVector';
/**
 * Implementation of a projection operator for quantum measurements
 */
export declare class ProjectionOperator implements IOperator {
    private _operator;
    private _dimension;
    constructor(state: StateVector);
    get objectType(): 'operator';
    get dimension(): number;
    get type(): 'projection';
    /**
     * Tests whether the density matrix is identically zero
     */
    isZero(tolerance?: number): boolean;
    norm(): number;
    apply(state: StateVector): StateVector;
    compose(other: IOperator): IOperator;
    adjoint(): IOperator;
    toMatrix(): Complex[][];
    tensorProduct(other: IOperator): IOperator;
    partialTrace(dims: number[], traceOutIndices: number[]): IOperator;
    scale(scalar: Complex): IOperator;
    add(other: IOperator): IOperator;
    eigenDecompose(): {
        values: Complex[];
        vectors: IOperator[];
    };
}
/**
 * Calculate expectation value of an operator for a given state
 */
export declare function expectationValue(state: StateVector, operator: IOperator): Complex;
/**
 * Perform a measurement on a quantum state with a given observable
 */
export declare function measureState(state: StateVector, operator: IOperator): IMeasurementOutcome;
/**
 * Create a measurement operator for a given observable and eigenvalue
 */
export declare function createMeasurementOperator(observable: IOperator, eigenvalue: number): IOperator;
