export type IPFS = import('@chris.troutner/ipfs-core-types').IPFS;
export type CID = import('cids');
export type EncodedCID = import('@chris.troutner/ipfs-message-port-protocol/src/cid').EncodedCID;
export type EncodedDAGNode = import('@chris.troutner/ipfs-message-port-protocol/src/dag').EncodedDAGNode;
export type PutOptions = import('@chris.troutner/ipfs-core-types/src/dag').PutOptions;
export class DAGService {
    /**
     * @param {IPFS} ipfs
     */
    constructor(ipfs: IPFS);
    ipfs: import("@chris.troutner/ipfs-core-types").IPFS;
    /**
     * @typedef {Object} PutDag
     * @property {EncodedDAGNode} dagNode
     * @property {EncodedCID} [encodedCid]
     *
     * @param {PutOptions & PutDag} query
     * @returns {Promise<EncodedCID>}
     */
    put(query: import("@chris.troutner/ipfs-core-types/src/dag").PutOptions & {
        dagNode: EncodedDAGNode;
        encodedCid?: import("@chris.troutner/ipfs-message-port-protocol/src/cid").EncodedCID | undefined;
    }): Promise<EncodedCID>;
    /**
     * @typedef {Object} EncodedGetResult
     * @property {Transferable[]} transfer
     * @property {string} [remainderPath]
     * @property {EncodedDAGNode} value
     *
     * @typedef {Object} GetDAG
     * @property {EncodedCID} cid
     * @property {string} [path]
     * @property {boolean} [localResolve]
     * @property {number} [timeout]
     * @property {AbortSignal} [signal]
     *
     * @param {GetDAG} query
     * @returns {Promise<EncodedGetResult>}
     */
    get(query: {
        cid: EncodedCID;
        path?: string | undefined;
        localResolve?: boolean | undefined;
        timeout?: number | undefined;
        signal?: AbortSignal | undefined;
    }): Promise<{
        transfer: Transferable[];
        remainderPath?: string | undefined;
        value: EncodedDAGNode;
    }>;
    /**
     * @typedef {Object} ResolveQuery
     * @property {EncodedCID|string} cid
     * @property {string} [path]
     * @property {number} [timeout]
     * @property {AbortSignal} [signal]
     *
     * @typedef {Object} EncodedResolveResult
     * @property {EncodedCID} cid
     * @property {string} [remainderPath]
     *
     * @param {ResolveQuery} query
     * @returns {Promise<EncodedResolveResult>}
     */
    resolve(query: {
        cid: EncodedCID | string;
        path?: string | undefined;
        timeout?: number | undefined;
        signal?: AbortSignal | undefined;
    }): Promise<{
        cid: EncodedCID;
        remainderPath?: string | undefined;
    }>;
    /**
     * @typedef {Object} EnumerateDAG
     * @property {EncodedCID} cid
     * @property {string} [path]
     * @property {boolean} [recursive]
     * @property {number} [timeout]
     * @property {AbortSignal} [signal]
     *
     * @param {EnumerateDAG} query
     * @returns {Promise<string[]>}
     */
    tree(query: {
        cid: EncodedCID;
        path?: string | undefined;
        recursive?: boolean | undefined;
        timeout?: number | undefined;
        signal?: AbortSignal | undefined;
    }): Promise<string[]>;
}
//# sourceMappingURL=dag.d.ts.map