import { Index, IndexBytes } from './feed';
import { FeedType } from './feed/type';
import { EthAddress } from './utils/eth';
import type { AddressPrefix, AnyJson, BatchId, BeeOptions, CollectionUploadOptions, Data, FeedReader, FeedWriter, FileData, FileUploadOptions, JsonFeedOptions, Pin, PssMessageHandler, PssSubscription, PublicKey, Reference, Signer, SOCReader, SOCWriter, Tag, Topic, UploadOptions, UploadResultWithCid } from './types';
import { AllTagsOptions, Collection, Readable, ReferenceCidOrEns, ReferenceOrEns, RequestOptions, UploadResult } from './types';
/**
 * The main component that abstracts operations available on the main Bee API.
 *
 * Not all methods are always available as it depends in what mode is Bee node launched in.
 * For example gateway mode and light node mode has only limited set of endpoints enabled.
 */
export declare class Bee {
    /**
     * URL on which is the main API of Bee node exposed
     */
    readonly url: string;
    /**
     * Default Signer object used for signing operations, mainly Feeds.
     */
    readonly signer?: Signer;
    /**
     * Ky instance that defines connection to Bee node
     * @private
     */
    private readonly ky;
    /**
     * @param url URL on which is the main API of Bee node exposed
     * @param options
     */
    constructor(url: string, options?: BeeOptions);
    /**
     * Upload data to a Bee node
     *
     * @param postageBatchId Postage BatchId to be used to upload the data with
     * @param data    Data to be uploaded
     * @param options Additional options like tag, encryption, pinning, content-type and request options
     *
     * @returns reference is a content hash of the data
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `POST /bytes`](https://docs.ethswarm.org/api/#tag/Bytes/paths/~1bytes/post)
     */
    uploadData(postageBatchId: string | BatchId, data: string | Uint8Array, options?: UploadOptions): Promise<UploadResult>;
    /**
     * Download data as a byte array
     *
     * @param reference Bee data reference in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `GET /bytes`](https://docs.ethswarm.org/api/#tag/Bytes/paths/~1bytes~1{reference}/get)
     */
    downloadData(reference: ReferenceOrEns | string, options?: RequestOptions): Promise<Data>;
    /**
     * Download data as a Readable stream
     *
     * @param reference Bee data reference in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `GET /bytes`](https://docs.ethswarm.org/api/#tag/Bytes/paths/~1bytes~1{reference}/get)
     */
    downloadReadableData(reference: ReferenceOrEns | string, options?: RequestOptions): Promise<ReadableStream<Uint8Array>>;
    /**
     * Upload chunk to a Bee node
     *
     * @param postageBatchId Postage BatchId to be used to upload the chunk with
     * @param data    Raw chunk to be uploaded
     * @param options Additional options like tag, encryption, pinning, content-type and request options
     *
     * @returns reference is a content hash of the data
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `POST /chunks`](https://docs.ethswarm.org/api/#tag/Chunk/paths/~1chunks/post)
     */
    uploadChunk(postageBatchId: string | BatchId, data: Uint8Array, options?: UploadOptions): Promise<Reference>;
    /**
     * Download chunk as a byte array
     *
     * @param reference Bee chunk reference in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `GET /chunks`](https://docs.ethswarm.org/api/#tag/Chunk/paths/~1chunks~1{reference}/get)
     */
    downloadChunk(reference: ReferenceOrEns | string, options?: RequestOptions): Promise<Data>;
    /**
     * Upload single file to a Bee node.
     *
     * **To make sure that you won't loose critical data it is highly recommended to also
     * locally pin the data with `options.pin = true`**
     *
     * @param postageBatchId Postage BatchId to be used to upload the data with
     * @param data    Data or file to be uploaded
     * @param name    Optional name of the uploaded file
     * @param options Additional options like tag, encryption, pinning, content-type and request options
     *
     * @see [Bee docs - Keep your data alive / Postage stamps](https://docs.ethswarm.org/docs/access-the-swarm/keep-your-data-alive)
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `POST /bzz`](https://docs.ethswarm.org/api/#tag/File/paths/~1bzz/post)
     * @returns reference is a content hash of the file
     */
    uploadFile(postageBatchId: string | BatchId, data: string | Uint8Array | Readable | File, name?: string, options?: FileUploadOptions): Promise<UploadResultWithCid>;
    /**
     * Download single file.
     *
     * @param reference Bee file reference in hex string (either 64 or 128 chars long), ENS domain or Swarm CID.
     * @param path If reference points to manifest, then this parameter defines path to the file
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     * @see Data
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `GET /bzz`](https://docs.ethswarm.org/api/#tag/Collection/paths/~1bzz~1{reference}~1{path}/get)
     */
    downloadFile(reference: ReferenceCidOrEns | string, path?: string, options?: RequestOptions): Promise<FileData<Data>>;
    /**
     * Download single file as a readable stream
     *
     * @param reference Bee file reference in hex string (either 64 or 128 chars long), ENS domain or Swarm CID.
     * @param path If reference points to manifest / collections, then this parameter defines path to the file
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     *
     * @see [Bee docs - Upload and download](https://docs.ethswarm.org/docs/access-the-swarm/upload-and-download)
     * @see [Bee API reference - `GET /bzz`](https://docs.ethswarm.org/api/#tag/Collection/paths/~1bzz~1{reference}~1{path}/get)
     */
    downloadReadableFile(reference: ReferenceCidOrEns | string, path?: string, options?: RequestOptions): Promise<FileData<ReadableStream<Uint8Array>>>;
    /**
     * Upload collection of files to a Bee node
     *
     * Uses the FileList API from the browser.
     *
     * The returned `UploadResult.tag` might be undefined if called in CORS-enabled environment.
     * This will be fixed upon next Bee release. https://github.com/ethersphere/bee-js/issues/406
     *
     * @param postageBatchId Postage BatchId to be used to upload the data with
     * @param fileList list of files to be uploaded
     * @param options Additional options like tag, encryption, pinning and request options
     *
     * @see [Bee docs - Keep your data alive / Postage stamps](https://docs.ethswarm.org/docs/access-the-swarm/keep-your-data-alive)
     * @see [Bee docs - Upload directory](https://docs.ethswarm.org/docs/access-the-swarm/upload-a-directory/)
     * @see [Bee API reference - `POST /bzz`](https://docs.ethswarm.org/api/#tag/Collection/paths/~1bzz/post)
     */
    uploadFiles(postageBatchId: string | BatchId, fileList: FileList | File[], options?: CollectionUploadOptions): Promise<UploadResultWithCid>;
    /**
     * Upload Collection that you can assembly yourself.
     *
     * The returned `UploadResult.tag` might be undefined if called in CORS-enabled environment.
     * This will be fixed upon next Bee release. https://github.com/ethersphere/bee-js/issues/406
     *
     * @param postageBatchId
     * @param collection
     * @param options Collections and request options
     */
    uploadCollection(postageBatchId: string | BatchId, collection: Collection<Uint8Array | Readable>, options?: CollectionUploadOptions): Promise<UploadResultWithCid>;
    /**
     * Upload collection of files.
     *
     * Available only in Node.js as it uses the `fs` module.
     *
     * The returned `UploadResult.tag` might be undefined if called in CORS-enabled environment.
     * This will be fixed upon next Bee release. https://github.com/ethersphere/bee-js/issues/406
     *
     * @param postageBatchId Postage BatchId to be used to upload the data with
     * @param dir the path of the files to be uploaded
     * @param options Additional options like tag, encryption, pinning and request options
     *
     * @see [Bee docs - Keep your data alive / Postage stamps](https://docs.ethswarm.org/docs/access-the-swarm/keep-your-data-alive)
     * @see [Bee docs - Upload directory](https://docs.ethswarm.org/docs/access-the-swarm/upload-a-directory/)
     * @see [Bee API reference - `POST /bzz`](https://docs.ethswarm.org/api/#tag/Collection/paths/~1bzz/post)
     */
    uploadFilesFromDirectory(postageBatchId: string | BatchId, dir: string, options?: CollectionUploadOptions): Promise<UploadResultWithCid>;
    /**
     * Create a new Tag which is meant for tracking progres of syncing data across network.
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param options Options that affects the request behavior
     * @see [Bee docs - Syncing / Tags](https://docs.ethswarm.org/docs/access-the-swarm/syncing)
     * @see [Bee API reference - `POST /tags`](https://docs.ethswarm.org/api/#tag/Tag/paths/~1tags/post)
     */
    createTag(options?: RequestOptions): Promise<Tag>;
    /**
     * Fetches all tags.
     *
     * The listing is limited by options.limit. So you have to iterate using options.offset to get all tags.
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param options Options that affects the request behavior
     * @throws TypeError if limit or offset are not numbers or undefined
     * @throws BeeArgumentError if limit or offset have invalid options
     *
     * @see [Bee docs - Syncing / Tags](https://docs.ethswarm.org/docs/access-the-swarm/syncing)
     * @see [Bee API reference - `GET /tags`](https://docs.ethswarm.org/api/#tag/Tag/paths/~1tags/get)
     */
    getAllTags(options?: AllTagsOptions): Promise<Tag[]>;
    /**
     * Retrieve tag information from Bee node
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param tagUid UID or tag object to be retrieved
     * @param options Options that affects the request behavior
     * @throws TypeError if tagUid is in not correct format
     *
     * @see [Bee docs - Syncing / Tags](https://docs.ethswarm.org/docs/access-the-swarm/syncing)
     * @see [Bee API reference - `GET /tags/{uid}`](https://docs.ethswarm.org/api/#tag/Tag/paths/~1tags~1{uid}/get)
     *
     */
    retrieveTag(tagUid: number | Tag, options?: RequestOptions): Promise<Tag>;
    /**
     * Delete Tag
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param tagUid UID or tag object to be retrieved
     * @param options Options that affects the request behavior
     * @throws TypeError if tagUid is in not correct format
     * @throws BeeResponse error if something went wrong on the Bee node side while deleting the tag.
     *
     * @see [Bee docs - Syncing / Tags](https://docs.ethswarm.org/docs/access-the-swarm/syncing)
     * @see [Bee API reference - `DELETE /tags/{uid}`](https://docs.ethswarm.org/api/#tag/Tag/paths/~1tags~1{uid}/delete)
     */
    deleteTag(tagUid: number | Tag, options?: RequestOptions): Promise<void>;
    /**
     * Update tag's total chunks count.
     *
     * This is important if you are uploading individual chunks with a tag. Then upon finishing the final root chunk,
     * you can use this method to update the total chunks count for the tag.
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param tagUid UID or tag object to be retrieved
     * @param reference The root reference that contains all the chunks to be counted
     * @param options Options that affects the request behavior
     * @throws TypeError if tagUid is in not correct format
     * @throws BeeResponse error if something went wrong on the Bee node side while deleting the tag.
     *
     * @see [Bee docs - Syncing / Tags](https://docs.ethswarm.org/docs/access-the-swarm/syncing)
     * @see [Bee API reference - `PATCH /tags/{uid}`](https://docs.ethswarm.org/api/#tag/Tag/paths/~1tags~1{uid}/patch)
     */
    updateTag(tagUid: number | Tag, reference: Reference | string, options?: RequestOptions): Promise<void>;
    /**
     * Pin local data with given reference
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param reference Data reference
     * @param options Options that affects the request behavior
     * @throws TypeError if reference is in not correct format
     *
     * @see [Bee docs - Pinning](https://docs.ethswarm.org/docs/access-the-swarm/pinning)
     */
    pin(reference: Reference | string, options?: RequestOptions): Promise<void>;
    /**
     * Unpin local data with given reference
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param reference Data reference
     * @param options Options that affects the request behavior
     * @throws TypeError if reference is in not correct format
     *
     * @see [Bee docs - Pinning](https://docs.ethswarm.org/docs/access-the-swarm/pinning)
     */
    unpin(reference: Reference | string, options?: RequestOptions): Promise<void>;
    /**
     * Get list of all locally pinned references
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param options Options that affects the request behavior
     * @see [Bee docs - Pinning](https://docs.ethswarm.org/docs/access-the-swarm/pinning)
     */
    getAllPins(options?: RequestOptions): Promise<Reference[]>;
    /**
     * Get pinning status of chunk with given reference
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * @param reference Bee data reference in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     *
     * @see [Bee docs - Pinning](https://docs.ethswarm.org/docs/access-the-swarm/pinning)
     */
    getPin(reference: Reference | string, options?: RequestOptions): Promise<Pin>;
    /**
     * Instructs the Bee node to reupload a locally pinned data into the network.
     *
     * @param reference Bee data reference to be re-uploaded in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws BeeArgumentError if the reference is not locally pinned
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     *
     * @see [Bee API reference - `PUT /stewardship`](https://docs.ethswarm.org/api/#tag/Stewardship/paths/~1stewardship~1{reference}/put)
     */
    reuploadPinnedData(reference: ReferenceOrEns | string, options?: RequestOptions): Promise<void>;
    /**
     * Checks if content specified by reference is retrievable from the network.
     *
     * @param reference Bee data reference to be checked in hex string (either 64 or 128 chars long) or ENS domain.
     * @param options Options that affects the request behavior
     * @throws TypeError if some of the input parameters is not expected type
     * @throws BeeArgumentError if there is passed ENS domain with invalid unicode characters
     *
     * @see [Bee API reference - `GET /stewardship`](https://docs.ethswarm.org/api/#tag/Stewardship/paths/~1stewardship~1{reference}/get)
     */
    isReferenceRetrievable(reference: ReferenceOrEns | string, options?: RequestOptions): Promise<boolean>;
    /**
     * Functions that validates if feed is retrievable in the network.
     *
     * If no index is passed then it check for "latest" update, which is a weaker guarantee as nobody can be really
     * sure what is the "latest" update.
     *
     * If index is passed then it validates all previous sequence index chunks if they are available as they are required
     * to correctly resolve the feed upto the given index update.
     *
     * @param type
     * @param owner
     * @param topic
     * @param index
     * @param options
     */
    isFeedRetrievable(type: FeedType, owner: EthAddress | Uint8Array | string, topic: Topic | Uint8Array | string, index?: Index | number | IndexBytes | string, options?: RequestOptions): Promise<boolean>;
    /**
     * Send data to recipient or target with Postal Service for Swarm.
     *
     * Because sending a PSS message is slow and CPU intensive,
     * it is not supposed to be used for general messaging but
     * most likely for setting up an encrypted communication
     * channel by sending an one-off message.
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * **Warning! If the recipient Bee node is a light node, then he will never receive the message!**
     * This is because light nodes does not fully participate in the data exchange in Swarm network and hence the message won't arrive to them.
     *
     * @param postageBatchId Postage BatchId that will be assigned to sent message
     * @param topic Topic name
     * @param target Target message address prefix. Has a limit on length. Recommend to use `Utils.Pss.makeMaxTarget()` to get the most specific target that Bee node will accept.
     * @param data Message to be sent
     * @param recipient Recipient public key
     * @param options Options that affects the request behavior
     * @throws TypeError if `data`, `batchId`, `target` or `recipient` are in invalid format
     *
     * @see [Bee docs - PSS](https://docs.ethswarm.org/docs/dapps-on-swarm/pss)
     * @see [Bee API reference - `POST /pss`](https://docs.ethswarm.org/api/#tag/Postal-Service-for-Swarm/paths/~1pss~1send~1{topic}~1{targets}/post)
     */
    pssSend(postageBatchId: string | BatchId, topic: string, target: AddressPrefix, data: string | Uint8Array, recipient?: string | PublicKey, options?: RequestOptions): Promise<void>;
    /**
     * Subscribe to messages for given topic with Postal Service for Swarm
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * **Warning! If connected Bee node is a light node, then he will never receive any message!**
     * This is because light nodes does not fully participate in the data exchange in Swarm network and hence the message won't arrive to them.
     *
     * @param topic Topic name
     * @param handler Message handler interface
     *
     * @returns Subscription to a given topic
     *
     * @see [Bee docs - PSS](https://docs.ethswarm.org/docs/dapps-on-swarm/pss)
     * @see [Bee API reference - `GET /pss`](https://docs.ethswarm.org/api/#tag/Postal-Service-for-Swarm/paths/~1pss~1subscribe~1{topic}/get)
     */
    pssSubscribe(topic: string, handler: PssMessageHandler): PssSubscription;
    /**
     * Receive message with Postal Service for Swarm
     *
     * Because sending a PSS message is slow and CPU intensive,
     * it is not supposed to be used for general messaging but
     * most likely for setting up an encrypted communication
     * channel by sending an one-off message.
     *
     * This is a helper function to wait for exactly one message to
     * arrive and then cancel the subscription. Additionally a
     * timeout can be provided for the message to arrive or else
     * an error will be thrown.
     *
     * **Warning! Not allowed when node is in Gateway mode!**
     *
     * **Warning! If connected Bee node is a light node, then he will never receive any message!**
     * This is because light nodes does not fully participate in the data exchange in Swarm network and hence the message won't arrive to them.
     *
     * @param topic Topic name
     * @param timeoutMsec Timeout in milliseconds
     *
     * @returns Message in byte array
     *
     * @see [Bee docs - PSS](https://docs.ethswarm.org/docs/dapps-on-swarm/pss)
     * @see [Bee API reference - `GET /pss`](https://docs.ethswarm.org/api/#tag/Postal-Service-for-Swarm/paths/~1pss~1subscribe~1{topic}/get)
     */
    pssReceive(topic: string, timeoutMsec?: number): Promise<Data>;
    /**
     * Create feed manifest chunk and return the reference to it.
     *
     * Feed manifest chunk allows for a feed to be able to be resolved through `/bzz` endpoint.
     *
     * @param postageBatchId  Postage BatchId to be used to create the Feed Manifest
     * @param type            The type of the feed, can be 'epoch' or 'sequence'
     * @param topic           Topic in hex or bytes
     * @param owner           Owner's ethereum address in hex or bytes
     * @param options Options that affects the request behavior
     *
     * @see [Bee docs - Feeds](https://docs.ethswarm.org/docs/dapps-on-swarm/feeds)
     * @see [Bee API reference - `POST /feeds`](https://docs.ethswarm.org/api/#tag/Feed/paths/~1feeds~1{owner}~1{topic}/post)
     * TODO: Once breaking add support for Feed CID
     */
    createFeedManifest(postageBatchId: string | BatchId, type: FeedType, topic: Topic | Uint8Array | string, owner: EthAddress | Uint8Array | string, options?: RequestOptions): Promise<Reference>;
    /**
     * Make a new feed reader for downloading feed updates.
     *
     * @param type    The type of the feed, can be 'epoch' or 'sequence'
     * @param topic   Topic in hex or bytes
     * @param owner   Owner's ethereum address in hex or bytes
     * @param options Options that affects the request behavior
     *
     * @see [Bee docs - Feeds](https://docs.ethswarm.org/docs/dapps-on-swarm/feeds)
     */
    makeFeedReader(type: FeedType, topic: Topic | Uint8Array | string, owner: EthAddress | Uint8Array | string, options?: RequestOptions): FeedReader;
    /**
     * Make a new feed writer for updating feeds
     *
     * @param type    The type of the feed, can be 'epoch' or 'sequence'
     * @param topic   Topic in hex or bytes
     * @param signer  The signer's private key or a Signer instance that can sign data
     * @param options Options that affects the request behavior
     *
     * @see [Bee docs - Feeds](https://docs.ethswarm.org/docs/dapps-on-swarm/feeds)
     */
    makeFeedWriter(type: FeedType, topic: Topic | Uint8Array | string, signer?: Signer | Uint8Array | string, options?: RequestOptions): FeedWriter;
    /**
     * High-level function that allows you to easily set JSON data to feed.
     * JSON-like data types are supported.
     *
     * The default Signer of Bee instance is used if `options.signer` is not specified.
     * If none of those two is set error is thrown.
     *
     * @param postageBatchId Postage BatchId to be used to upload the data with
     * @param topic Human readable string, that is internally hashed so there are no constrains there.
     * @param data JSON compatible data
     * @param options
     * @param options.signer Custom instance of Signer or string with private key.
     * @param options.type Type of Feed
     *
     * @throws BeeError if `options.signer` is not specified nor the default Signer on Bee's instance is specified.
     *
     * @see [Bee docs - Feeds](https://docs.ethswarm.org/docs/dapps-on-swarm/feeds)
     */
    setJsonFeed<T extends AnyJson>(postageBatchId: string | BatchId, topic: string, data: T, options?: JsonFeedOptions): Promise<Reference>;
    /**
     * High-level function that allows you to easily get data from feed.
     * Returned data are parsed using JSON.parse().
     *
     * This method also supports specification of `signer` object passed to constructor. The order of evaluation is:
     *  - `options.address`
     *  - `options.signer`
     *  - `this.signer`
     *
     * At least one of these has to be specified!
     *
     * @param topic Human readable string, that is internally hashed so there are no constrains there.
     * @param options
     * @param options.signer Custom instance of Signer or string with private key. This option is exclusive with `address` option.
     * @param options.address Ethereum address of owner of the feed that signed it. This option is exclusive with `signer` option.
     * @param options.type Type of Feed
     *
     * @see [Bee docs - Feeds](https://docs.ethswarm.org/docs/dapps-on-swarm/feeds)
     */
    getJsonFeed<T extends AnyJson>(topic: string, options?: JsonFeedOptions): Promise<T>;
    /**
     * Make a new feed topic from a string
     *
     * Because the topic has to be 32 bytes long this function
     * hashes the input string to create a topic string of arbitrary length.
     *
     * @param topic The input string
     */
    makeFeedTopic(topic: string): Topic;
    /**
     * Returns an object for reading single owner chunks
     *
     * @param ownerAddress The ethereum address of the owner
     * @param options Options that affects the request behavior
     * @see [Bee docs - Chunk Types](https://docs.ethswarm.org/docs/dapps-on-swarm/chunk-types#single-owner-chunks)
     */
    makeSOCReader(ownerAddress: EthAddress | Uint8Array | string, options?: RequestOptions): SOCReader;
    /**
     * Returns an object for reading and writing single owner chunks
     *
     * @param signer The signer's private key or a Signer instance that can sign data
     * @param options Options that affects the request behavior
     * @see [Bee docs - Chunk Types](https://docs.ethswarm.org/docs/dapps-on-swarm/chunk-types#single-owner-chunks)
     */
    makeSOCWriter(signer?: Signer | Uint8Array | string, options?: RequestOptions): SOCWriter;
    /**
     * Ping the Bee node to see if there is a live Bee node on the given URL.
     *
     * @param options Options that affects the request behavior
     * @throws If connection was not successful throw error
     */
    checkConnection(options?: RequestOptions): Promise<void> | never;
    /**
     * Ping the Bee node to see if there is a live Bee node on the given URL.
     *
     * @param options Options that affects the request behavior
     * @returns true if successful, false on error
     */
    isConnected(options?: RequestOptions): Promise<boolean>;
    /**
     * @param signer
     * @private
     * @throws BeeError if either no Signer was passed or no default Signer was specified for the instance
     */
    private resolveSigner;
    private getKy;
}
