/**
 * File was automatically generated using json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND.
 * Instead, modify the source file https://formats.openag.io/trellis/rules/action.schema.json of @oada/formats
 * and run `$ yarn build` to regenerate this file.
 */
/**
 * $id of the source schema
 * @see {@link https://formats.openag.io/trellis/rules/action.schema.json}
 */
export declare const $id = "https://formats.openag.io/trellis/rules/action.schema.json";
/**
 * Returns true if val is a @type Action, false otherwise
 */
export declare function is(val: any): val is Action;
/**
 * Asserts that val is a @type Action
 */
export declare function assert(val: any): asserts val is Action;
export default Action;
/**
 * A description of an action which can be used in OADA rules
 */
export declare type Action = {
    /**
     * Name of the action
     */
    name: string;
    /**
     * Name of the service implementing/performing the action
     */
    service: string;
    /**
     * Content-type(s) with which this action works
     */
    type: string | string[];
    /**
     * Human description of the action for UI etc.
     */
    description: string;
    /**
     * UISchema for the params
     */
    uischema?: {
        [k: string]: unknown;
    };
    params?: CoreAndValidationSpecificationsMetaSchema;
    [k: string]: unknown;
};
/**
 * Input parameters for the action
 */
export declare type CoreAndValidationSpecificationsMetaSchema = CoreVocabularyMetaSchema2 & ApplicatorVocabularyMetaSchema2 & ValidationVocabularyMetaSchema2 & MetaDataVocabularyMetaSchema2 & FormatVocabularyMetaSchema2 & ContentVocabularyMetaSchema2;
export declare type CoreVocabularyMetaSchema2 = CoreVocabularyMetaSchema | CoreVocabularyMetaSchema1;
export declare type CoreVocabularyMetaSchema1 = boolean;
export declare type ApplicatorVocabularyMetaSchema2 = ApplicatorVocabularyMetaSchema | ApplicatorVocabularyMetaSchema1;
export declare type ApplicatorVocabularyMetaSchema1 = boolean;
export declare type ValidationVocabularyMetaSchema2 = ValidationVocabularyMetaSchema | ValidationVocabularyMetaSchema1;
export declare type ValidationVocabularyMetaSchema1 = boolean;
export declare type MetaDataVocabularyMetaSchema2 = MetaDataVocabularyMetaSchema | MetaDataVocabularyMetaSchema1;
export declare type MetaDataVocabularyMetaSchema1 = boolean;
export declare type FormatVocabularyMetaSchema2 = FormatVocabularyMetaSchema | FormatVocabularyMetaSchema1;
export declare type FormatVocabularyMetaSchema1 = boolean;
export declare type ContentVocabularyMetaSchema2 = ContentVocabularyMetaSchema | ContentVocabularyMetaSchema1;
export declare type ContentVocabularyMetaSchema1 = boolean;
export interface CoreVocabularyMetaSchema {
    $id?: string;
    $schema?: string;
    $anchor?: string;
    $ref?: string;
    $recursiveRef?: string;
    $recursiveAnchor?: boolean;
    $vocabulary?: {
        [k: string]: boolean;
    };
    $comment?: string;
    $defs?: {
        [k: string]: {
            [k: string]: unknown;
        };
    };
    [k: string]: unknown;
}
export interface ApplicatorVocabularyMetaSchema {
    additionalItems?: {
        [k: string]: unknown;
    };
    unevaluatedItems?: {
        [k: string]: unknown;
    };
    items?: {
        [k: string]: unknown;
    } | {
        [k: string]: unknown;
    }[];
    contains?: {
        [k: string]: unknown;
    };
    additionalProperties?: {
        [k: string]: unknown;
    };
    unevaluatedProperties?: {
        [k: string]: unknown;
    };
    properties?: {
        [k: string]: {
            [k: string]: unknown;
        };
    };
    patternProperties?: {
        [k: string]: {
            [k: string]: unknown;
        };
    };
    dependentSchemas?: {
        [k: string]: {
            [k: string]: unknown;
        };
    };
    propertyNames?: {
        [k: string]: unknown;
    };
    if?: {
        [k: string]: unknown;
    };
    then?: {
        [k: string]: unknown;
    };
    else?: {
        [k: string]: unknown;
    };
    allOf?: {
        [k: string]: unknown;
    }[];
    anyOf?: {
        [k: string]: unknown;
    }[];
    oneOf?: {
        [k: string]: unknown;
    }[];
    not?: {
        [k: string]: unknown;
    };
    [k: string]: unknown;
}
export interface ValidationVocabularyMetaSchema {
    multipleOf?: number;
    maximum?: number;
    exclusiveMaximum?: number;
    minimum?: number;
    exclusiveMinimum?: number;
    maxLength?: number;
    minLength?: number;
    pattern?: string;
    maxItems?: number;
    minItems?: number;
    uniqueItems?: boolean;
    maxContains?: number;
    minContains?: number;
    maxProperties?: number;
    minProperties?: number;
    required?: string[];
    dependentRequired?: {
        [k: string]: string[];
    };
    const?: unknown;
    enum?: unknown[];
    type?: ("array" | "boolean" | "integer" | "null" | "number" | "object" | "string") | ("array" | "boolean" | "integer" | "null" | "number" | "object" | "string")[];
    [k: string]: unknown;
}
export interface MetaDataVocabularyMetaSchema {
    title?: string;
    description?: string;
    default?: unknown;
    deprecated?: boolean;
    readOnly?: boolean;
    writeOnly?: boolean;
    examples?: unknown[];
    [k: string]: unknown;
}
export interface FormatVocabularyMetaSchema {
    format?: string;
    [k: string]: unknown;
}
export interface ContentVocabularyMetaSchema {
    contentMediaType?: string;
    contentEncoding?: string;
    contentSchema?: {
        [k: string]: unknown;
    };
    [k: string]: unknown;
}
//# sourceMappingURL=action.d.ts.map