/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import { FromBinResult } from '../primitive/FromBinResult.js';
import { DateTimeLocal } from '../datetime/dt.js';
import { ACmd } from './ACmd.js';
import { ColValue } from './ColValue.js';
import type { TableName } from './TableName.js';
import { CommandData } from './types/Command.js';
export declare abstract class ACmdData extends ACmd {
    readonly recId: number;
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number, cmd: CommandData);
    toJSON(): Record<string, unknown>;
    toBin(extraSpace?: number): Uint8Array;
    static fromBinSub(s: DateTimeLocal, cByte: number, u: number, t: TableName, e: number, bin: Uint8Array, len: number, pos: number): FromBinResult<ACmdData>;
}
declare abstract class ADataCols extends ACmdData {
    readonly cols: ColValue[];
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number, cmd: CommandData, ...cols: ColValue[]);
    toJSON(): Record<string, unknown>;
    toBin(): Uint8Array;
}
export declare class CmdDataInsert extends ADataCols {
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number, ...cols: ColValue[]);
    static Now(userId: number, table: TableName, recId: number, ...cols: ColValue[]): CmdDataInsert;
    static fromBinSub(s: DateTimeLocal, cByte: number, u: number, t: TableName, e: number, bin: Uint8Array, len: number, pos: number): FromBinResult<CmdDataInsert>;
}
export declare class CmdDataPut extends ADataCols {
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number, ...cols: ColValue[]);
    static Now(userId: number, table: TableName, recId: number, ...cols: ColValue[]): CmdDataPut;
    static fromBinSub(s: DateTimeLocal, cByte: number, u: number, t: TableName, e: number, bin: Uint8Array, len: number, pos: number): FromBinResult<CmdDataPut>;
}
export declare class CmdDataPatch extends ADataCols {
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number, ...cols: ColValue[]);
    static Now(userId: number, table: TableName, recId: number, ...cols: ColValue[]): CmdDataPatch;
    static fromBinSub(s: DateTimeLocal, cByte: number, u: number, t: TableName, e: number, bin: Uint8Array, len: number, pos: number): FromBinResult<CmdDataPatch>;
}
export declare class CmdDataDelete extends ACmdData {
    constructor(userId: number, started: DateTimeLocal, table: TableName, recId: number);
    static Now(userId: number, table: TableName, recId: number): CmdDataDelete;
    static fromBinSub(s: DateTimeLocal, cByte: number, u: number, t: TableName, e: number, bin: Uint8Array, len: number, pos: number): FromBinResult<CmdDataDelete>;
}
export {};
