import { ResourceInfo } from '../types'; import { APimApiBuilderFunction, ApimApiPolicyType, ApimChildBuilderProps, ApimHookProxyBuilderType, ApimProductSubscriptionBuilderType, BuilderAsync, IApimProductBuilder, IBuilderAsync } from './types'; /** * ApimProductBuilder class for creating and configuring Azure API Management Product resources. * This class implements the Builder pattern for APIM Product configuration including * APIs, subscriptions, policies, and hook proxies. * @extends BuilderAsync * @implements IApimProductBuilder */ export declare class ApimProductBuilder extends BuilderAsync implements IApimProductBuilder { private args; private _apis; private _requiredSubscription; private _productInstance; private _subInstance; private readonly _productInstanceName; private _policyString; private _state; /** * Creates an instance of ApimProductBuilder. * @param {ApimChildBuilderProps} args - The arguments for building the APIM Product. */ constructor(args: ApimChildBuilderProps); /** * Sets policies for the APIM Product. * @param {ApimApiPolicyType} props - A function that takes a policy builder and returns a configured policy. * @returns {IApimProductBuilder} The current ApimProductBuilder instance. */ withPolicies(props: ApimApiPolicyType): IApimProductBuilder; /** * Configures subscription requirements for the APIM Product. * @param {ApimProductSubscriptionBuilderType} props - The subscription configuration including limits and approval settings. * @returns {IApimProductBuilder} The current ApimProductBuilder instance. */ requiredSubscription(props: ApimProductSubscriptionBuilderType): IApimProductBuilder; /** * Adds an API to the APIM Product. * @param {string} name - The name of the API. * @param {APimApiBuilderFunction} props - A function that configures the API builder. * @returns {IApimProductBuilder} The current ApimProductBuilder instance. */ withApi(name: string, props: APimApiBuilderFunction): IApimProductBuilder; /** * Adds a hook proxy API to the APIM Product for webhook forwarding. * @param {string} name - The name of the hook proxy API. * @param {ApimHookProxyBuilderType} props - The hook proxy configuration including header keys. * @returns {IApimProductBuilder} The current ApimProductBuilder instance. */ withHookProxy(name: string, props: ApimHookProxyBuilderType): IApimProductBuilder; /** * Sets the product state to published, making it available for subscription. * @returns {IBuilderAsync} The current ApimProductBuilder instance. */ published(): IBuilderAsync; private buildProduct; private buildSubscription; private buildApis; build(): Promise; }