import { type ExistingManifestContextOptions } from "./existing-manifest-context.js"; import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.js"; export type CustomSkillStatus = 'active' | 'inactive'; export type CustomSkillSourceType = 'user' | 'company'; /** * Initialization properties for {@link CustomSkill}. */ export interface CustomSkillProps { /** * Source-side identifier for this Custom Skill. * * For a new skill, omit this field and the SDK generates a temporary handle * that Composer maps to the skill's generated database UUID during deploy. * * For an existing skill, use the `source_skill_id` loaded from component * search/extraction. * * Optional. Auto-generated when omitted. @default generateId('skill') */ sourceSkillId?: string; /** * Display name shown in Rippling AI. * * Required. */ name: string; /** * Description used to explain when the skill applies. * * Required. Use `null` to clear this field when updating an existing skill. */ description: string | null; /** * Markdown instruction content for the skill. * * Required. */ content: string; /** * Optional folder path for organizing skills. Use `null` to clear this field * when updating an existing skill. */ path?: string | null; /** * Whether the skill is active or inactive. * * Required. */ status: CustomSkillStatus; /** * Skill visibility. `user` creates a personal skill; `company` creates a * company skill. * * Optional create-time visibility. Do not set when updating an existing * skill; use `CustomSkill.loadFromExisting(...)` so the extracted value can * round-trip unchanged. */ sourceType?: CustomSkillSourceType; } /** * Defines a Rippling AI Custom Skill and registers it with the manifest. */ export declare class CustomSkill { static readonly componentType: "CUSTOM_SKILL"; static toDeletionIdentifier(sourceSkillId: string): ManifestComponentDeletion; private readonly _sourceSkillId; private _name; private _description; private _content; private _path; private _status; private _sourceType; /** * @param scope - The manifest to register this skill with. * @param props - Initialization properties. */ constructor(scope: ManifestScope, props: CustomSkillProps); /** * Loads this skill from the active existing-manifest JSON context. */ static loadFromExisting(sourceSkillId: string, options?: ExistingManifestContextOptions): CustomSkill; /** @internal Hydrates a custom skill from existing manifest wire JSON. */ static _fromExistingComponent(scope: ManifestScope, component: Record): CustomSkill; /** * Returns this skill's source-side manifest identifier. New skills use a * generated temporary handle; extracted skills use their database UUID. */ getSourceSkillId(): string; /** * Replaces the display name for this skill. */ setName(name: string): this; /** * Replaces the description for this skill. Pass `null` to clear it. */ setDescription(description: string | null): this; /** * Replaces the plaintext markdown instruction content for this skill. */ setContent(content: string): this; /** * Replaces the optional folder path for this skill. Pass `null` to clear it, * or `undefined` to omit it from the serialized manifest. */ setPath(path: string | null | undefined): this; /** * Replaces whether this skill is active or inactive. */ setStatus(status: CustomSkillStatus): this; /** * Serializes this skill to the wire format consumed by the manifest install endpoint. */ toDict(): Record; } //# sourceMappingURL=custom-skill.d.ts.map