import { ValidationResult } from "@memberjunction/core";
import { MJTemplateContentEntity, MJTemplateEntity, MJTemplateParamEntity } from "../generated/entity_subclasses.js";
export declare class MJTemplateEntityExtended extends MJTemplateEntity {
    private _Content;
    get Content(): MJTemplateContentEntity[];
    set Content(value: MJTemplateContentEntity[]);
    private _Params;
    get Params(): MJTemplateParamEntity[];
    set Params(value: MJTemplateParamEntity[]);
    /**
     * Returns all content for a given type for the template
     * @param type
     * @returns
     */
    GetContentByType(type: string): MJTemplateContentEntity[];
    /**
     * Returns the highest priority content for the template
     * @param type If provided, returns the highest priority content of the specified type
     * @returns
     */
    GetHighestPriorityContent(type?: string): MJTemplateContentEntity;
    /**
     * Returns all parameters that apply to a specific template content.
     * This includes both global parameters (where TemplateContentID is NULL)
     * and content-specific parameters for the given contentId.
     *
     * @param contentId - The ID of the template content. If not provided, returns only global parameters.
     * @returns Array of MJTemplateParamEntity objects that apply to the specified content
     *
     * @example
     * // Get all parameters for a specific content
     * const params = template.GetParametersForContent('content-uuid');
     *
     * @example
     * // Get only global parameters (that apply to all contents)
     * const globalParams = template.GetParametersForContent();
     */
    GetParametersForContent(contentId?: string): MJTemplateParamEntity[];
    /**
     * This method is different from the Validate() method which validates the state of the Template itself.
     * This method validates the data object provided meets the requirements for the template's parameter definitions.
     *
     * @param data - the data object to validate against the template's parameter definitions
     * @param contentId - Optional: The ID of the template content to validate against.
     *                    If provided, validates against parameters specific to that content.
     *                    If not provided, validates against all parameters.
     * @returns ValidationResult with success status and any validation errors
     *
     * @example
     * // Validate against all parameters
     * const result = template.ValidateTemplateInput(inputData);
     *
     * @example
     * // Validate against parameters for a specific content
     * const result = template.ValidateTemplateInput(inputData, 'content-uuid');
     */
    ValidateTemplateInput(data: any, contentId?: string): ValidationResult;
}
//# sourceMappingURL=MJTemplateEntityExtended.d.ts.map