export declare enum Category { Build = "BUILD", CodeReview = "CODE_REVIEW", DevEx = "DEV_EX", Deploy = "DEPLOY", Security = "SECURITY", Dependencies = "DEPENDENCIES", Notifications = "NOTIFICATIONS", CI = "CI", CD = "CD", Productivity = "PRODUCTIVITY", CodeQuality = "CODE_QUALITY", Chat = "CHAT" } export declare enum Technology { Java = "JAVA", Maven = "MAVEN", Docker = "DOCKER", JavaScript = "JAVASCRIPT", NPM = "NPM", Leiningen = "LEIN", Clojure = "CLOJURE", Kubernetes = "KUBERNETES" } export declare enum DispatchStyle { Single = "single", Multiple = "multiple" } export declare enum Platform { NodeJs10 = "nodejs10", Python37 = "python37", Go113 = "go113" } export interface SkillRuntime { entryPoint?: string; platform?: Platform; url?: string; memory?: number; timeout?: number; } export interface SkillPackage { bundle?: boolean; minify?: boolean; sourceMaps?: boolean; } export interface SkillContainer { image: string; args?: string[]; command?: string[]; env?: Array<{ name: string; value: string; }>; workingDir?: string; } export interface ResourceProvider { description?: string; maxAllowed?: number; minRequired?: number; typeName: string; } export declare enum ParameterVisibility { Hidden = "hidden", Advanced = "advanced", Normal = "normal" } export declare enum LineStyle { Single = "single", Multiple = "multiple" } export interface Parameter { type: T; defaultValue?: D; description: string; displayName?: string; required: boolean; visibility?: ParameterVisibility; } export declare type BooleanParameter = Parameter; export interface FloatParameter extends Parameter { maximum?: number; minimum?: number; placeHolder?: string; } export interface IntParameter extends Parameter { maximum?: number; minimum?: number; placeHolder?: string; } export interface MultiChoiceParameter extends Omit, "defaultValue"> { defaultValues?: string[]; maxAllowed?: number; minRequired?: number; options: Array<{ description?: string; text: string; value: string; }>; } export interface SingleChoiceParameter extends Parameter { maxAllowed?: number; minRequired?: number; options: Array<{ description?: string; text: string; value: string; }>; } export declare type RepoFilterParameter = Omit, "defaultValue" | "visibility">; export declare type ScheduleParameter = Parameter; export interface StringParameter extends Parameter { lineStyle?: LineStyle; pattern?: string; placeHolder?: string; } export interface StringArrayParameter extends Parameter { maxAllowed?: number; minRequired?: number; pattern?: string; } export interface Metadata { name: string; namespace: string; version: string; author: string; displayName: string; description: string; longDescription: string; readme?: string; license: string; categories?: Category[]; technologies?: Technology[]; homepageUrl: string; repositoryUrl: string; iconUrl: string; videoUrl?: string; } export declare enum ParameterType { Boolean = "boolean", Float = "float", Int = "int", MultiChoice = "multiChoice", SingleChoice = "singleChoice", RepoFilter = "repoFilter", Schedule = "schedule", String = "string", StringArray = "stringArray" } export declare type ParametersIndexType = string; export declare type ParametersType = { [key in ParametersIndexType]?: number | boolean | string | number | string[]; }; export interface Configuration { dispatchStyle?: DispatchStyle; maxConfigurations?: number; runtime?: SkillRuntime; containers?: Record; package?: SkillPackage; parameters?: Record; resourceProviders?: Record; } export interface Command { name: string; displayName?: string; description: string; pattern: RegExp; } export interface Operations { commands?: Command[]; subscriptions?: string[]; } export declare type Skill = Metadata & Configuration & Operations; export declare function slackResourceProvider(options?: { minRequired: number; maxAllowed: number; }): ResourceProvider; export declare function gitHubResourceProvider(options?: { minRequired: number; maxAllowed: number; }): ResourceProvider; export declare function repoFilter(required?: boolean): RepoFilterParameter; export declare function packageJson(path?: string): Metadata; export declare function skill(skill: Partial & Configuration & Operations, p?: string): Skill; //# sourceMappingURL=skill.d.ts.map