import { CredentialsConfig } from '../services/credentials.js';
export declare const PARAMS_SYMBOL: unique symbol;
export type BasicParamType = 'string' | 'enum' | 'number' | 'boolean' | 'selector';
export type AdvancedParamType = 'json' | 'javascript' | 'definition' | 'template' | 'keys' | 'recordset' | 'pipeline' | 'button' | 'outcome' | 'ref' | 'credentials';
export type ParamType = BasicParamType | AdvancedParamType;
export type StringSource = 'attributes' | 'classList' | 'inputs' | 'outputs' | 'globals' | 'locals' | 'dataPaths' | 'errorCodes';
export interface ParamSpec {
    type: BasicParamType | AdvancedParamType;
    name: string;
    serialized: boolean;
    label?: string;
    help?: string;
    placeholder?: string;
    [key: string]: any;
}
export declare function String(spec?: {
    source?: StringSource;
    label?: string;
    help?: string;
    placeholder?: string;
    showInHeader?: boolean;
}): (target: any, propertyKey: string) => void;
export declare function Enum(spec: {
    enum: string[] | Array<{
        label: string;
        value: string;
    }>;
    label?: string;
    help?: string;
    placeholder?: string;
    showInHeader?: boolean;
}): (target: any, propertyKey: string) => void;
export declare function Number(spec?: {
    label?: string;
    help?: string;
    placeholder?: string;
    min?: number;
    max?: number;
    showInHeader?: boolean;
}): (target: any, propertyKey: string) => void;
export declare function Boolean(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Selector(spec?: {
    label?: string;
    help?: string;
    showInHeader?: boolean;
}): (target: any, propertyKey: string) => void;
export declare function Json(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function JavaScript(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Definition(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function ParamRef(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Template(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Keys(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Pipeline(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Recordset(spec: {
    label?: string;
    help?: string;
    singular: string;
    fields: RecordsetField[];
}): (target: any, propertyKey: string) => void;
export declare function Button(spec?: {
    label?: string;
    help?: string;
}): (target: any, propertyKey: string) => void;
export declare function Credentials(spec: CredentialsParamSpec): (target: any, propertyKey: string) => void;
export type CredentialsParamSpec = {
    label?: string;
    help?: string;
    icon?: string;
    providerName: string;
    configs: CredentialsConfig | CredentialsConfig[];
};
export declare function Outcome(spec?: {
    label?: string;
    placeholder?: string;
    outputKeyProp?: string;
    hidden?: boolean;
}): (target: any, propertyKey: string) => void;
export declare const Preview: typeof Outcome;
export interface RecordsetField {
    type: BasicParamType;
    name: string;
    source?: StringSource;
    value?: any;
    label?: string;
    enum?: string[];
    min?: number;
    max?: number;
    placeholder?: string;
}
export declare function getAllParams(target: any): ParamSpec[];
//# sourceMappingURL=params.d.ts.map