import { BaseParameter, BaseValue } from "./internal/metadata/decoratorSupport";
/**
 * Decorator for parameters. Adds to object properties
 */
export declare function Parameter(details?: BaseParameter): (target: any, propertyKey: string) => void;
/**
 * Map a local field to some other configuration item in a different system
 */
export declare function MappedParameter(uri: string, required?: boolean): (target: any, name: string) => void;
/**
 * Declare a secret an automation wants to use
 */
export declare function Secret(uri: string): (target: any, name: string) => void;
/**
 * Inject a config value from the automation-client configuration
 */
export declare function Value(pathOrValue: string | BaseValue): (target: any, name: string) => void;
/**
 * Decorator for a command handler class. Implements HandleCommand
 * @param {string} description
 * @param {string[] | string} intent
 * @return {(obj: any) => any}
 * @constructor
 */
export declare function CommandHandler(description: string, ...intent: string[]): (obj: any) => void;
/**
 * Decorator for a configurable command handler class. Implements HandleCommand
 * @param {string} description
 * @param {string[] | string} intent
 * @return {(obj: any) => any}
 * @constructor
 */
export declare function ConfigurableCommandHandler(description: string, options: {
    intent?: string | string[];
    autoSubmit?: boolean;
}): (obj: any) => void;
/**
 * Decorator for a parameter class that doesn't contain handler logic
 * @return {(obj: any) => any}
 * @constructor
 */
export declare function Parameters(): (obj: any) => void;
export declare function EventHandler(description: string, subscription?: string): (obj: object) => void;
/**
 * Decorator for tags. Sets tags on the class
 */
export declare function Tags(...tags: string[]): (target: any) => void;
export declare abstract class MappedParameters {
    static readonly GitHubOwner: string;
    static readonly GitHubOwnerWithUser: string;
    static readonly GitHubRepository: string;
    static readonly GitHubAllRepositories: string;
    static readonly GitHubRepositoryProvider: string;
    static readonly GitHubWebHookUrl: string;
    static readonly GitHubUrl: string;
    static readonly GitHubApiUrl: string;
    static readonly GitHubDefaultRepositoryVisibility: string;
    static readonly GitHubUserLogin: string;
    static readonly SlackChannel: string;
    static readonly SlackChannelName: string;
    static readonly SlackTeam: string;
    static readonly SlackUser: string;
    static readonly SlackUserName: string;
    static readonly AtomistWebhookUrlBase: string;
}
export declare abstract class Secrets {
    static readonly OrgToken: string;
    static readonly UserToken: string;
    static userToken(scopes: string | string[]): string;
}
//# sourceMappingURL=decorators.d.ts.map