// @flow strict
export type Version = 0 | 1
export type Codec = string
export type CodecCode = number
export type Multihash = Uint8Array
export type BaseEncodedString = string
export type MultibaseName = string
declare class CID {
constructor(Version, Codec, Multihash, multibaseName?:MultibaseName): void;
constructor(Version, CodecCode, Multihash, multibaseName?:MultibaseName): void;
constructor(BaseEncodedString): void;
constructor(Uint8Array): void;
+codec: Codec;
+code: CodecCode;
+multihash: Multihash;
+bytes: Uint8Array;
+prefix: Uint8Array;
toV0(): CID;
toV1(): CID;
toBaseEncodedString(base?: string): BaseEncodedString;
toString(): BaseEncodedString;
toJSON(): { codec: Codec, version: Version, hash: Multihash };
equals(mixed): boolean;
static codecs: { [string]: Codec };
static isCID(mixed): boolean;
static validateCID(mixed): void;
}
export default CID
export type { CID }