import * as IO from "../../helpers/io.js";
import { BlobResponse } from "../response/blobResponse.js";
export interface BlobLink<T extends string> {
    hash: string;
    type: T;
    size: number;
    name: string;
}
export type AnyBlobLink = BlobLink<any>;
export declare class BlobLinkClass<V extends string, T extends IO.LiteralC<V> | IO.StringC> extends IO.Type<BlobLink<IO.TypeOf<T>>, unknown, unknown> {
    constructor(type: T);
}
declare function blobLink<T extends string>(type: T): BlobLinkClass<T, IO.LiteralType<T>>;
declare function buildBlobLink<T extends string>(blobResponse: BlobResponse, type: T, name: string): BlobLink<T>;
export declare const BlobLink: {
    io: typeof blobLink;
    new: typeof buildBlobLink;
};
export declare const AnyBlobLink: {
    io: () => BlobLinkClass<string, IO.StringC>;
};
export {};
