/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */
import { FromBinResult } from '../../primitive/FromBinResult.js';
import { ColType } from './ColType.js';
import { ACudColType } from './ACudColType.js';
import type { IValid } from '../interfaces/IValid.js';
import { IProblem } from '../../error/probs/interfaces/IProblem.js';
declare abstract class ABin extends ACudColType implements IValid<Uint8Array> {
    readonly sqliteType = "BLOB";
    readonly postgresType = "bytea";
    constructor(nullable?: boolean);
    protected _valid(input: Uint8Array | undefined, maxLen: number): IProblem | undefined;
    abstract valid(input?: Uint8Array): IProblem | undefined;
}
export declare class Bin1 extends ABin {
    readonly mysqlType = "TINYBLOB";
    readonly cudType = "bin1";
    readonly _colType = ColType.Bin1;
    cudByteSize(input: Uint8Array): number;
    valid(input?: Uint8Array): IProblem | undefined;
    unknownBin(value?: Uint8Array): Uint8Array;
    binUnknown(bin: Uint8Array, pos: number): FromBinResult<Uint8Array | undefined>;
}
export declare class Bin2 extends ABin {
    readonly mysqlType = "BLOB";
    readonly cudType = "bin2";
    readonly _colType = ColType.Bin2;
    cudByteSize(input: Uint8Array): number;
    valid(input?: Uint8Array): IProblem | undefined;
    unknownBin(value?: Uint8Array): Uint8Array;
    binUnknown(bin: Uint8Array, pos: number): FromBinResult<Uint8Array | undefined>;
}
export declare class Bin3 extends ABin {
    readonly mysqlType = "MEDIUMBLOB";
    readonly cudType = "bin3";
    readonly _colType = ColType.Bin3;
    cudByteSize(input: Uint8Array): number;
    valid(input?: Uint8Array): IProblem | undefined;
    unknownBin(value?: Uint8Array): Uint8Array;
    binUnknown(bin: Uint8Array, pos: number): FromBinResult<Uint8Array | undefined>;
}
export declare class Bin4ish extends ABin {
    readonly mysqlType = "LONGBLOB";
    readonly cudType = "bin4";
    readonly _colType = ColType.Bin4ish;
    cudByteSize(input: Uint8Array): number;
    valid(input?: Uint8Array): IProblem | undefined;
    unknownBin(value?: Uint8Array): Uint8Array;
    binUnknown(bin: Uint8Array, pos: number): FromBinResult<Uint8Array | undefined>;
}
export {};
