import type { UsesAbilities } from '../abilities/UsesAbilities';
import type { Answerable } from '../Answerable';
import type { AnswersQuestions } from './AnswersQuestions';
declare const descriptionField: unique symbol;
/**
 * @group Questions
 */
export declare abstract class Describable {
    private [descriptionField];
    protected constructor(description: Answerable<string>);
    /**
     * Resolves the description of this object in the context of the provided `actor`.
     *
     * @param actor
     */
    describedBy(actor: AnswersQuestions & UsesAbilities & {
        name: string;
    }): Promise<string>;
    protected setDescription(description: Answerable<string>): void;
    protected getDescription(): Answerable<string>;
    /**
     * Returns a human-readable description of this object.
     */
    toString(): string;
}
export {};
//# sourceMappingURL=Describable.d.ts.map