import { Alignment } from '@learncard/types';
export type ProviderId = 'neo4j' | 'opensalt' | 'opensalt-staging' | 'dummy' | (string & {});
export type SkillsProviderOptions = {
    baseUrl?: string;
    apiKey?: string;
};
export type Framework = {
    id: string;
    name: string;
    description?: string;
    image?: string;
    sourceURI?: string;
    status?: string;
};
export type Skill = {
    id: string;
    statement: string;
    description?: string;
    code?: string;
    icon?: string;
    type?: string;
    status?: string;
    parentId?: string | null;
};
export type Obv3Alignment = Alignment;
export interface SkillsProvider {
    readonly id: ProviderId;
    getFrameworkById(frameworkId: string): Promise<Framework | null>;
    createFramework?(framework: Framework): Promise<Framework>;
    updateFramework?(frameworkId: string, updates: Partial<Framework>): Promise<Framework | null>;
    deleteFramework?(frameworkId: string): Promise<void>;
    getSkillsForFramework(frameworkId: string): Promise<Skill[]>;
    getSkillsByIds(frameworkId: string, skillIds: string[]): Promise<Skill[]>;
    createSkill?(frameworkId: string, skill: Skill): Promise<Skill>;
    updateSkill?(frameworkId: string, skillId: string, updates: Partial<Skill>): Promise<Skill | null>;
    deleteSkill?(frameworkId: string, skillId: string): Promise<void>;
    buildObv3Alignments(frameworkId: string, skillIds: string[], domain: string): Promise<Obv3Alignment[]>;
}
export type { SkillsProviderOptions as Options };
//# sourceMappingURL=types.d.ts.map