import { EventEmitter } from 'events';
export { QuantumManager } from './core/quantum-manager';
export * from './types';
export declare class QuantumSDK extends EventEmitter {
    private manager;
    private config;
    constructor(config?: QuantumSDKConfig);
    generateKeyPair(algorithm?: PostQuantumAlgorithm): Promise<KeyPair>;
    encrypt(data: Uint8Array, keyId: string): Promise<EncryptionResult>;
    decrypt(encryptionResult: EncryptionResult): Promise<Uint8Array>;
    sign(data: Uint8Array, keyId: string): Promise<SignatureResult>;
    createCircuit(name: string, qubits: number): Promise<QuantumCircuit>;
    executeCircuit(circuitId: string, shots?: number): Promise<SimulationResult>;
    storeData(key: string, data: Uint8Array): Promise<string>;
    healthCheck(): Promise<{
        status: string;
        details: Record<string, unknown>;
    }>;
    isEnabled(): boolean;
    enable(): void;
    disable(): void;
    getKeyPairs(): KeyPair[];
    getCircuits(): QuantumCircuit[];
    getDataEntries(): QuantumDataEntry[];
}
export declare class QuantumUtils {
    static generateSecureRandom(length: number): Uint8Array;
    static calculateQuantumHash(data: Uint8Array): string;
    static validateSecurityLevel(algorithm: PostQuantumAlgorithm, level: SecurityLevel): boolean;
    static estimateQuantumAdvantage(classicalComplexity: string, quantumComplexity: string): QuantumAdvantage;
    static binaryToAmplitudes(binaryString: string): {
        real: number;
        imaginary: number;
    }[];
    static calculateCircuitDepth(gates: {
        qubits: number[];
        type: string;
    }[]): number;
}
export declare class QuantumAlgorithmTemplates {
    static createGroverAlgorithm(databaseSize: number): QuantumAlgorithm;
    static createShorAlgorithm(numberToFactor: number): QuantumAlgorithm;
    static createQFTAlgorithm(qubits: number): QuantumAlgorithm;
    static createVQEAlgorithm(moleculeSize: number): QuantumAlgorithm;
}
export declare class QuantumCircuitBuilder {
    private gates;
    private qubits;
    private name;
    constructor(name: string, qubits: number);
    h(qubit: number): QuantumCircuitBuilder;
    x(qubit: number): QuantumCircuitBuilder;
    y(qubit: number): QuantumCircuitBuilder;
    z(qubit: number): QuantumCircuitBuilder;
    cnot(control: number, target: number): QuantumCircuitBuilder;
    rx(qubit: number, angle: number): QuantumCircuitBuilder;
    ry(qubit: number, angle: number): QuantumCircuitBuilder;
    rz(qubit: number, angle: number): QuantumCircuitBuilder;
    build(): Omit<QuantumCircuit, 'id' | 'createdAt'>;
    private validateQubit;
}
export declare class QuantumCircuitTemplates {
    static bellState(): Omit<QuantumCircuit, 'id' | 'createdAt'>;
    static ghzState(qubits: number): Omit<QuantumCircuit, 'id' | 'createdAt'>;
    static quantumTeleportation(): Omit<QuantumCircuit, 'id' | 'createdAt'>;
    static randomNumberGenerator(bits: number): Omit<QuantumCircuit, 'id' | 'createdAt'>;
}
export default QuantumSDK;
//# sourceMappingURL=index.d.ts.map