import AbstractStore, { StoreOptions } from '../../../stores/AbstractStore';
import { CurrentSkill, RegisteredSkill } from '../../../types/cli.types';
export default class SkillStore extends AbstractStore {
    readonly name = "skill";
    private static currentSkill?;
    constructor(options: StoreOptions<SkillStoreOptions>);
    static clearCurrentSkill(): void;
    register(values: CreateSkill, options?: RegisterSkillOptions): Promise<RegisteredSkill>;
    private assertInSkill;
    loadCurrentSkill(): Promise<CurrentSkill>;
    isCurrentSkillRegistered(): Promise<boolean>;
    private getNamespaceFromPkg;
    loadCurrentSkillsNamespace(): Promise<Capitalize<string>>;
    setCurrentSkillsNamespace(namespace: string): Promise<void>;
    private getEventNamespaceForNotRegistered;
    private getSkillDescriptionFromPkg;
    unregisterSkill(skillId: string): Promise<void>;
    fetchMySkills(): Promise<Pick<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema, false, import("@sprucelabs/schema").SchemaOptionalFieldNames<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema>, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema, false>>, "id" | "name" | "description" | "slug" | "isPublished" | "canBeInstalled" | "dateCreated" | "dateDeleted">[]>;
    fetchAllSkills(query?: {
        shouldOnlyShowMine?: boolean;
        namespaces?: string[];
    }): Promise<Pick<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema, false, import("@sprucelabs/schema").SchemaOptionalFieldNames<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema>, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillSchema, false>>, "id" | "name" | "description" | "slug" | "isPublished" | "canBeInstalled" | "dateCreated" | "dateDeleted">[]>;
}
export interface CreateSkill {
    name: string;
    slug?: string;
    description?: string;
    isPublished?: boolean;
}
export interface RegisterSkillOptions {
    isRegisteringCurrentSkill?: boolean;
}
export interface SkillStoreOptions {
}
