import { Buffer } from 'node:buffer';
import type { BinaryLike, Cipher, Decipher } from 'node:crypto';
import type { RequiredDeep } from 'type-fest';
import type { BaseCipherEncodingOptions, HasAuthTagAesCipherEncodingOptions, Result } from './types';
export declare class BaseCipher<EncodingOptions extends HasAuthTagAesCipherEncodingOptions = BaseCipherEncodingOptions> {
    #private;
    constructor(encodingOptions?: EncodingOptions);
    get encodingOptions(): Readonly<RequiredDeep<EncodingOptions>>;
    protected createErrorResult(error: unknown): {
        error: unknown;
        ok: false;
    };
    protected createOkResult<T>(value: T): {
        ok: true;
        value: T;
    };
    protected dataToBuffer(data: BinaryLike, encoding: BufferEncoding): Buffer<ArrayBuffer> | NodeJS.ArrayBufferView<ArrayBufferLike>;
    protected getCipherResult(cipher: Cipher, data: BinaryLike, encodingOptions?: EncodingOptions): string;
    protected getDecipherResult(decipher: Decipher, encryptedData: BinaryLike, encodingOptions?: EncodingOptions): string;
    protected parseJson<T>(data: string): Result<T>;
}
//# sourceMappingURL=base.d.ts.map