import { APIDocFetchManyOptions } from 'guilded-api-typings';
import { BaseManager, FetchManyOptions, FetchOptions } from './BaseManager';
import { Doc } from '../structures/Doc';
import { DocChannel } from '../structures/channel/DocChannel';
import { Collection } from '@discordjs/collection';
/**
 * The manager of docs that belong to a doc channel.
 * @example new DocManager(channel);
 */
export declare class DocManager extends BaseManager<number, Doc> {
    readonly channel: DocChannel;
    /** @param channel The doc channel the docs belong to. */
    constructor(channel: DocChannel);
    /**
     * Fetch a doc from the channel, or cache.
     * @param doc The doc to fetch.
     * @param options The options to fetch the doc with.
     * @returns The fetched doc.
     * @example docs.fetch(doc);
     */
    fetch(doc: number | Doc, options?: FetchOptions): Promise<Doc>;
    /**
     * Fetch docs from the channel.
     * @param options The options to fetch the docs with.
     * @returns The fetched docs.
     * @example docs.fetch();
     */
    fetch(options?: DocFetchManyOptions): Promise<Collection<number, Doc>>;
    /** @ignore */
    private fetchSingle;
    /** @ignore */
    private fetchMany;
    /**
     * Create a doc in the channel.
     * @param title The title of the doc.
     * @param content The content of the doc.
     * @returns The created doc.
     * @example docs.create('Title', 'Content');
     */
    create(title: string, content: string): Promise<Doc>;
    /**
     * Edit a doc in the channel.
     * @param doc The doc to edit.
     * @param title The title of the doc.
     * @param content The content of the doc.
     * @returns The edited doc.
     * @example docs.edit(doc, 'Title', 'Content');
     */
    edit(doc: number | Doc, title: string, content: string): Promise<Doc>;
    /**
     * Delete a doc from the channel.
     * @param doc The doc to delete.
     * @example docs.delete(doc);
     */
    delete(doc: number | Doc): Promise<void>;
}
/** The options for fetching docs. */
export interface DocFetchManyOptions extends FetchManyOptions, APIDocFetchManyOptions {
}
//# sourceMappingURL=DocManager.d.ts.map