import { Address, AddressPrefix, AllTagsOptions, BatchId, CollectionUploadOptions, FileUploadOptions, NumberString, PssMessageHandler, PublicKey, Readable, Reference, Tag, UploadOptions, TransactionHash, RequestOptions, PostageBatchOptions, CashoutOptions, ReferenceOrEns, UploadResult, UploadResultWithCid } from '../types';
import { ReferenceType } from '@ethersphere/swarm-cid';
export declare function isUint8Array(obj: unknown): obj is Uint8Array;
export declare function isInteger(value: unknown): value is number | NumberString;
export declare function isObject(value: unknown): value is Record<string, unknown>;
/**
 * Generally it is discouraged to use `object` type, but in this case I think
 * it is best to do so as it is possible to easily convert from `object`to other
 * types, which will be usually the case after asserting that the object is
 * strictly object. With for example Record<string, unknown> you have to first
 * cast it to `unknown` which I think bit defeat the purpose.
 *
 * @param value
 */
export declare function isStrictlyObject(value: unknown): value is object;
/**
 * Asserts if object is Error
 *
 * @param e
 */
export declare function isError(e: unknown): e is Error;
export declare function assertStrictlyObject(value: unknown, name?: string): asserts value is object;
export declare function assertBoolean(value: unknown, name?: string): asserts value is boolean;
export declare function assertInteger(value: unknown, name?: string): asserts value is number | NumberString;
export declare function assertNonNegativeInteger(value: unknown, name?: string): asserts value is number | NumberString;
export declare function assertPositiveInteger(value: unknown, name?: string): asserts value is number | NumberString;
export declare function assertReference(value: unknown): asserts value is Reference;
export declare function assertReferenceOrEns(value: unknown): asserts value is ReferenceOrEns;
/**
 * Function that mainly converts Swarm CID into hex encoded Swarm Reference
 *
 * @param value
 * @param expectedCidType
 */
export declare function makeReferenceOrEns(value: unknown, expectedCidType: ReferenceType): ReferenceOrEns;
/**
 * Function that adds getter which converts the reference into CID base32 encoded string.
 * @param result
 * @param cidType Type as described in the @ethersphere/swarm-cids-js -> ReferenceType
 */
export declare function addCidConversionFunction(result: UploadResult, cidType: ReferenceType): UploadResultWithCid;
export declare function assertAddress(value: unknown): asserts value is Address;
export declare function assertBatchId(value: unknown): asserts value is BatchId;
export declare function assertRequestOptions(value: unknown, name?: string): asserts value is RequestOptions;
export declare function assertUploadOptions(value: unknown, name?: string): asserts value is UploadOptions;
export declare function assertFileUploadOptions(value: unknown): asserts value is FileUploadOptions;
export declare function assertCollectionUploadOptions(value: unknown): asserts value is CollectionUploadOptions;
export declare function isTag(value: unknown): value is Tag;
export declare function assertTag(value: unknown): asserts value is Tag;
export declare function assertAddressPrefix(value: unknown): asserts value is AddressPrefix;
export declare function assertPssMessageHandler(value: unknown): asserts value is PssMessageHandler;
export declare function assertPublicKey(value: unknown): asserts value is PublicKey;
export declare function assertPostageBatchOptions(value: unknown): asserts value is PostageBatchOptions;
export declare function assertCashoutOptions(value: unknown): asserts value is CashoutOptions;
/**
 * Check whether the given parameter is valid data to upload
 * @param value
 * @throws TypeError if not valid
 */
export declare function assertData(value: unknown): asserts value is string | Uint8Array;
/**
 * Check whether the given parameter is a correct file representation to file upload.
 * @param value
 * @throws TypeError if not valid
 */
export declare function assertFileData(value: unknown): asserts value is string | Uint8Array | Readable | File;
/**
 * Checks whether optional options for AllTags query are valid
 * @param options
 */
export declare function assertAllTagsOptions(entry: unknown): asserts entry is AllTagsOptions;
/**
 * Utility functions that return Tag UID
 * @param tagUid
 */
export declare function makeTagUid(tagUid: number | Tag | string | null | undefined): number;
export declare function assertTransactionHash(transactionHash: unknown): asserts transactionHash is TransactionHash;
