import { ABIDecoder } from "../serializer/Decoder.js";
import { ABIEncoder } from "../serializer/Encoder.js";
import { ABISerializableObject } from "../serializer/Serializable.js";
import { BytesType } from "./Bytes.js";
type ChecksumType = Checksum | BytesType;
declare class Checksum implements ABISerializableObject {
    static abiName: string;
    static byteSize: number;
    static isChecksumType(value: any): value is Checksum;
    static from<T extends typeof Checksum>(this: T, value: ChecksumType): InstanceType<T>;
    static from(value: ChecksumType): unknown;
    static fromHexString(value: string): Checksum;
    static fromABI<T extends typeof Checksum>(this: T, decoder: ABIDecoder): InstanceType<T>;
    static fromABI(decoder: ABIDecoder): unknown;
    static abiDefault<T extends typeof Checksum>(this: T): InstanceType<T>;
    static abiDefault(): unknown;
    readonly array: Uint8Array;
    constructor(array: Uint8Array);
    equals(other: Checksum160Type | Checksum256Type | Checksum512Type): boolean;
    get hexString(): string;
    toABI(encoder: ABIEncoder): void;
    toString(): string;
    toJSON(): string;
}
export type Checksum256Type = Checksum256 | BytesType;
export declare class Checksum256 extends Checksum {
    static abiName: string;
    static byteSize: number;
    static from(value: Checksum256Type): Checksum256;
    static hash(data: BytesType): Checksum256;
}
export type Checksum512Type = Checksum512 | BytesType;
export declare class Checksum512 extends Checksum {
    static abiName: string;
    static byteSize: number;
    static from(value: Checksum512Type): Checksum512;
    static hash(data: BytesType): Checksum512;
}
export type Checksum160Type = Checksum160 | BytesType;
export declare class Checksum160 extends Checksum {
    static abiName: string;
    static byteSize: number;
    static from(value: Checksum160Type): Checksum160;
    static hash(data: BytesType): Checksum160;
}
export {};
//# sourceMappingURL=Checksum.d.ts.map