import { Group, ParameterType } from "../../metadata/automationMetadata";
export interface BaseParameter {
    readonly pattern?: RegExp;
    readonly required?: boolean;
    readonly description?: string;
    readonly displayName?: string;
    readonly validInput?: string;
    readonly displayable?: boolean;
    readonly maxLength?: number;
    readonly minLength?: number;
    readonly type?: ParameterType;
    readonly order?: number;
    readonly group?: Group;
    readonly control?: "input" | "textarea";
}
export interface Parameter extends BaseParameter {
    readonly name: string;
}
export interface BaseValue {
    path: string;
    required?: boolean;
    type?: "string" | "number" | "boolean";
}
export declare function declareParameter(target: any, propertyKey: string, details: BaseParameter): any;
export declare function declareMappedParameter(target: any, name: string, uri: string, required: boolean): any;
export declare function declareValue(target: any, name: string, value: BaseValue): any;
export declare function declareSecret(target: any, name: string, uri: string): any;
export declare function declareCommandHandler(obj: any, description: string, autoSubmit: boolean, intent?: string[]): any;
export declare function declareParameters(obj: any): any;
export declare function declareEventHandler(obj: any, description: string, subscription: string): any;
export declare function declareTags(target: any, tags: string[]): any;
export declare function declareIntent(target: any, intent: string[]): any;
export declare function declareAutoSubmit(target: any, autoSubmit: boolean): any;
//# sourceMappingURL=decoratorSupport.d.ts.map