declare abstract class AbstractSymmetricCrypt {
    static readonly METHOD_SIZE = 2;
    abstract encryptWithKey(data: string, key: Buffer): string;
    abstract decryptWithKey(data: Buffer, key: Buffer): Buffer;
    abstract key(password: string, salt?: string): Buffer;
    encrypt(data: string, password: string, salt?: string): string;
    decrypt(data: Buffer, password: string, salt: string): Buffer;
    protected format(...items: string[]): string;
    protected parse(payload: Buffer, lengths: Record<string, number>): {
        method?: number;
        data?: Buffer;
        [key: string]: any;
    };
}

export { AbstractSymmetricCrypt as A };
