import { D as Ddu64Core, a as DduSecureConstructorOptions, G as DduSecureOptions, P as PlatformAdapter, I as KeyDerivationOptions } from './core-ihIEWmI5.cjs';
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, j as Ddu64DecodeError, k as Ddu64DecompressionError, l as Ddu64DecryptionError, m as Ddu64EncodeError, n as Ddu64EncryptionError, o as Ddu64Error, p as Ddu64ErrorCode, q as Ddu64ErrorOptions, r as Ddu64InvalidInputError, s as Ddu64LimitError, t as Ddu64ObfuscationError, u as Ddu64Operation, v as Ddu64StreamError, w as DduBaseConstructorOptions, x as DduBaseOptions, F as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, y as DduProgressInfo, z as DduSetSymbol, A as DduSetSymbolInput, H as DduStreamOptions, E as EncodingProfile, K as KeyDerivationAlgorithm, O as ObfuscationLayer, B as isDdu64Error } from './core-ihIEWmI5.cjs';
export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-BSCrvsT3.cjs';
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-CK0ptcW-.cjs';

/**
 * Node.js 전용 secure Ddu64 래퍼.
 *
 * Ddu64Core를 확장하여 압축/암호화/체크섬(배터리 포함)과 Node.js Buffer를 지원합니다:
 * - NodeAdapter 자동 주입 (zlib/crypto) → 압축/암호화/체크섬 사용 가능
 * - HangulObfuscationLayer 자동 주입 → 한글 난독화 사용 가능
 * - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공
 * - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장)
 *
 * 구 `Ddu64Node`의 배터리 동작을 계승합니다. 6.0부터 기본 진입점(`@ddunigma/node`)은
 * 인코딩 + 난독화만 제공하며, 압축/암호화/체크섬/스트림은 secure 진입점
 * (`@ddunigma/node/secure`)으로 이전되었습니다.
 *
 * @module Ddu64Secure
 */

/**
 * Node.js 전용 secure Ddu64 인코더/디코더.
 *
 * Ddu64Core를 래핑하여 자동 NodeAdapter 주입(압축/암호화/체크섬)과
 * 하위 호환성을 위한 Buffer 반환 디코드 메서드를 제공합니다.
 *
 * @example
 * ```ts
 * import { Ddu64Secure } from '@ddunigma/node/secure';
 *
 * const encoder = new Ddu64Secure(undefined, undefined, { encryptionKey: 'key' });
 * const encoded = encoder.encode(Buffer.from('Hello'), { compress: true });
 * const decoded = encoder.decodeToBuffer(encoded); // Buffer 반환
 * ```
 */
declare class Ddu64Secure extends Ddu64Core {
    constructor(dduChar?: string[] | string | DduSecureConstructorOptions, paddingChar?: string, dduOptions?: DduSecureConstructorOptions);
    /**
     * 인코딩된 문자열을 Node.js Buffer로 디코딩합니다.
     *
     * @param input - 디코딩할 인코딩된 문자열
     * @param options - 디코딩 옵션
     * @returns 디코딩된 Buffer
     * @group Sync
     */
    decodeToBuffer(input: string, options?: DduSecureOptions): Buffer;
    /**
     * 비동기적으로 Node.js Buffer로 디코딩합니다.
     *
     * @param input - 디코딩할 인코딩된 문자열
     * @param options - 디코딩 옵션
     * @returns 디코딩된 Buffer로 resolve되는 Promise
     * @group Async
     */
    decodeToBufferAsync(input: string, options?: DduSecureOptions): Promise<Buffer>;
}

/**
 * Node.js 플랫폼 어댑터 구현.
 * Node.js `crypto`와 `zlib` 모듈을 래핑하여 PlatformAdapter 인터페이스를 구현합니다.
 *
 * @module adapters/NodeAdapter
 */

/**
 * PlatformAdapter의 Node.js 구현.
 * 네이티브 Node.js `crypto`와 `zlib` 모듈을 사용하여
 * 동기 및 비동기 암호화/압축 연산을 제공합니다.
 */
declare class NodeAdapter implements PlatformAdapter {
    readonly runtime: "node";
    deriveKey(key: string, options?: KeyDerivationOptions): Promise<Uint8Array>;
    deriveKeySync(key: string, options?: KeyDerivationOptions): Uint8Array;
    encrypt(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
    encryptSync(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Uint8Array;
    decrypt(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
    decryptSync(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Uint8Array;
    randomBytes(length: number): Uint8Array;
    deflate(data: Uint8Array, level?: number): Promise<Uint8Array>;
    deflateSync(data: Uint8Array, level?: number): Uint8Array;
    inflate(data: Uint8Array, maxBytes?: number): Promise<Uint8Array>;
    inflateSync(data: Uint8Array, maxBytes?: number): Uint8Array;
    brotliCompress(data: Uint8Array, level?: number): Promise<Uint8Array>;
    brotliCompressSync(data: Uint8Array, level?: number): Uint8Array;
    brotliDecompress(data: Uint8Array, maxBytes?: number): Promise<Uint8Array>;
    brotliDecompressSync(data: Uint8Array, maxBytes?: number): Uint8Array;
}

/**
 * 런타임 자동 감지 모듈.
 * 현재 JavaScript 런타임 환경을 감지하고 적절한 PlatformAdapter를 반환합니다.
 *
 * 중요: 이 모듈은 Node.js 내장 모듈을 임포트하지 않습니다.
 * 감지는 순수하게 globalThis 검사에 기반합니다.
 *
 * @module adapters/detect
 */

/**
 * 현재 런타임에 적합한 PlatformAdapter를 가져옵니다.
 *
 * 실제로 필요할 때까지 플랫폼별 모듈을 임포트하지 않는
 * 지연 로딩을 사용합니다.
 *
 * @returns 적절한 PlatformAdapter로 resolve되는 Promise
 * @throws 적합한 런타임이 감지되지 않은 경우 에러
 */
declare function getAdapter(): Promise<PlatformAdapter>;

export { Ddu64Secure as Ddu64, Ddu64Core, Ddu64Secure, DduSecureConstructorOptions, DduSecureOptions, KeyDerivationOptions, NodeAdapter, PlatformAdapter, getAdapter };
