import { IAmfAnyShape, IAmfApi, IAmfArrayNode, IAmfArrayShape, IAmfAsyncApi, IAmfCreativeWork, IAmfDataArrangeShape, IAmfDataNode, IAmfDocumentSourceMaps, IAmfDomainElement, IAmfEndPoint, IAmfExample, IAmfFileShape, IAmfLicense, IAmfNodeShape, IAmfObjectNode, IAmfOperation, IAmfOrganization, IAmfParameter, IAmfPropertyShape, IAmfRecursiveShape, IAmfScalarNode, IAmfScalarShape, IAmfSchemaShape, IAmfSecurityRequirement, IAmfServer, IAmfShape, IAmfSynthesizedField, IAmfTupleShape, IAmfUnionShape, IAmfWebApi, IAmfXMLSerializer, IAmfPayload, IAmfTag, IAmfCallback, IAmfRequest, IAmfResponse, IAmfTemplatedLink, IAmfIriTemplateMapping, IAmfParametrizedSecurityScheme, IAmfSecurityScheme, IAmfSettings, IAmfOAuth1Settings, IAmfOAuth2Settings, IAmfApiKeySettings, IAmfHttpSettings, IAmfOpenIdConnectSettings, IAmfOAuth2Flow, IAmfScope, IAmfParametrizedDeclaration, IAmfParametrizedTrait, IAmfParametrizedResourceType, IAmfVariableValue, IAmfAbstractDeclaration } from './definitions/Amf.js';
import { IApiAbstractDeclaration, IApiAsync, IApiBase, IApiCallback, IApiDocumentation, IApiDocumentSourceMaps, IApiEndPoint, IApiEndPointWithOperationsListItem, IApiIriTemplateMapping, IApiLicense, IApiOperation, IApiOperationListItem, IApiOrganization, IApiParameter, IApiParametrizedDeclaration, IApiParametrizedResourceType, IApiParametrizedSecurityScheme, IApiParametrizedTrait, IApiPayload, IApiRequest, IApiResponse, IApiSecurityApiKeySettings, IApiSecurityHttpSettings, IApiSecurityOAuth1Settings, IApiSecurityOAuth2Flow, IApiSecurityOAuth2Settings, IApiSecurityOpenIdConnectSettings, IApiSecurityRequirement, IApiSecurityScheme, IApiSecuritySchemeListItem, IApiSecurityScope, IApiSecuritySettings, IApiSecuritySettingsUnion, IApiServer, IApiSummary, IApiSynthesizedField, IApiTag, IApiTemplatedLink, IApiVariableValue, IApiWeb, IShapeProcessingOptions } from './definitions/Api.js';
import { IApiCustomDomainProperty } from './definitions/Base.js';
import { IApiAnyShape, IApiArrayNode, IApiArrayShape, IApiDataArrangeShape, IApiDataExample, IApiDataNode, IApiDataNodeUnion, IApiFileShape, IApiNodeShape, IApiObjectNode, IApiPropertyShape, IApiRecursiveShape, IApiScalarNode, IApiScalarShape, IApiSchemaShape, IApiShape, IShapeUnion, IApiTupleShape, IApiUnionShape, IApiXmlSerializer } from './definitions/Shapes.js';
declare const AmfSerializer_base: (new (...args: any[]) => import("./AmfMixin.js").AmfMixinInterface) & ObjectConstructor;
/**
 * A class that takes AMF's ld+json model and outputs JavaScript interface of it.
 */
export declare class AmfSerializer extends AmfSerializer_base {
    /**
     * @param graph Optional AMF generated graph model.
     */
    constructor(graph?: IAmfDomainElement);
    /**
     * @param types The list of graph object types. When not defined it returns an empty array.
     * @returns The expanded types.
     */
    readTypes(types: string[], context?: Record<string, string>): string[];
    /**
     * @param object The API to serialize.
     * @returns API summary, without complex objects.
     */
    apiSummary(object: IAmfApi): IApiSummary;
    api(object: IAmfApi, context?: Record<string, string>): IApiBase;
    webApi(object: IAmfWebApi, context?: Record<string, string>): IApiWeb;
    asyncApi(object: IAmfAsyncApi, context?: Record<string, string>): IApiAsync;
    provider(object: IAmfOrganization, context?: Record<string, string>): IApiOrganization;
    license(object: IAmfLicense, context?: Record<string, string>): IApiLicense;
    /**
     * @param object The AMF Server to serialize.
     * @returns Serialized Server
     */
    server(object: IAmfServer, context?: Record<string, string>): IApiServer;
    /**
     * @param object The Parameter to serialize.
     * @returns Serialized Parameter
     */
    parameter(object: IAmfParameter, context?: Record<string, string>): IApiParameter;
    unknownShape(object: IAmfShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IShapeUnion;
    isLink(object: IAmfDomainElement, context?: Record<string, string>): boolean;
    getLinkTarget<T extends IAmfDomainElement>(object: T, context?: Record<string, string>): T | undefined;
    shape(object: IAmfShape, context?: Record<string, string>): IApiShape;
    anyShape(object: IAmfAnyShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiAnyShape;
    /**
     * Filters examples that should be rendered for a payload identified by `trackedId`.
     *
     * This function is copied from old `api-example-generator/ExampleGenerator`.
     */
    filterTrackedExamples(examples: IAmfExample[], trackedId: string, context?: Record<string, string>): IAmfExample[];
    /**
     * Kind of the opposite of the `filterTrackedExamples`. It gathers examples that only have been
     * defined for the parent Shape (ed in the type declaration). It filters out all examples
     * defined in a payload.
     */
    filterNonTrackedExamples(examples: IAmfExample[], context?: Record<string, string>): IAmfExample[];
    scalarShape(object: IAmfScalarShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiScalarShape;
    nodeShape(object: IAmfNodeShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiNodeShape;
    propertyShape(object: IAmfPropertyShape, context?: Record<string, string>): IApiPropertyShape;
    unionShape(object: IAmfUnionShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiUnionShape;
    fileShape(object: IAmfFileShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiFileShape;
    schemaShape(object: IAmfSchemaShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiSchemaShape;
    recursiveShape(object: IAmfRecursiveShape, context?: Record<string, string>): IApiRecursiveShape;
    dataArrangeShape(object: IAmfDataArrangeShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiDataArrangeShape;
    arrayShape(object: IAmfArrayShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiArrayShape;
    tupleShape(object: IAmfTupleShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IApiTupleShape;
    /**
     * @param object The CreativeWork to serialize.
     * @returns Serialized CreativeWork
     */
    documentation(object: IAmfCreativeWork, context?: Record<string, string>): IApiDocumentation;
    /**
     * @param object The Example to serialize.
     * @returns Serialized Example
     */
    example(object: IAmfExample, context?: Record<string, string>): IApiDataExample;
    xmlSerializer(object: IAmfXMLSerializer, context?: Record<string, string>): IApiXmlSerializer;
    unknownDataNode(object: IAmfDataNode, context?: Record<string, string>): IApiDataNodeUnion | undefined;
    dataNode(object: IAmfDataNode, context?: Record<string, string>): IApiDataNode;
    scalarNode(object: IAmfScalarNode, context?: Record<string, string>): IApiScalarNode;
    objectNode(object: IAmfObjectNode, context?: Record<string, string>): IApiObjectNode;
    arrayNode(object: IAmfArrayNode, context?: Record<string, string>): IApiArrayNode;
    /**
     * Adds the custom domain properties to the currently processed property, a.k.a annotations.
     * @returns  The list of custom domain properties.
     */
    customDomainProperties(object: IAmfDomainElement, context?: Record<string, string>): IApiCustomDomainProperty[];
    endPoint(object: IAmfEndPoint, context?: Record<string, string>): IApiEndPoint;
    operation(object: IAmfOperation, context?: Record<string, string>): IApiOperation;
    tag(object: IAmfTag, context?: Record<string, string>): IApiTag;
    callback(object: IAmfCallback, context?: Record<string, string>): IApiCallback;
    request(object: IAmfRequest, context?: Record<string, string>): IApiRequest;
    response(object: IAmfResponse, context?: Record<string, string>): IApiResponse;
    payload(object: IAmfPayload, context?: Record<string, string>): IApiPayload;
    templatedLink(object: IAmfTemplatedLink, context?: Record<string, string>): IApiTemplatedLink;
    iriTemplateMapping(object: IAmfIriTemplateMapping, context?: Record<string, string>): IApiIriTemplateMapping;
    parametrizedSecurityScheme(object: IAmfParametrizedSecurityScheme, context?: Record<string, string>): IApiParametrizedSecurityScheme;
    securitySchemeListItem(object: IAmfSecurityScheme, context?: Record<string, string>): IApiSecuritySchemeListItem;
    securityScheme(object: IAmfSecurityScheme, context?: Record<string, string>): IApiSecurityScheme;
    securityRequirement(object: IAmfSecurityRequirement, context?: Record<string, string>): IApiSecurityRequirement;
    securitySettings(object: IAmfSettings, context?: Record<string, string>): IApiSecuritySettingsUnion;
    /**
     * @param {IAmfSettings} object
     * @param context
     * @returns {IApiSecuritySettings}
     */
    settings(object: IAmfSettings, context?: Record<string, string>): IApiSecuritySettings;
    oAuth1Settings(object: IAmfOAuth1Settings, context?: Record<string, string>): IApiSecurityOAuth1Settings;
    oAuth2Settings(object: IAmfOAuth2Settings, context?: Record<string, string>): IApiSecurityOAuth2Settings;
    oAuth2Flow(object: IAmfOAuth2Flow, context?: Record<string, string>): IApiSecurityOAuth2Flow;
    scope(object: IAmfScope, context?: Record<string, string>): IApiSecurityScope;
    apiKeySettings(object: IAmfApiKeySettings, context?: Record<string, string>): IApiSecurityApiKeySettings;
    httpSettings(object: IAmfHttpSettings, context?: Record<string, string>): IApiSecurityHttpSettings;
    openIdConnectSettings(object: IAmfOpenIdConnectSettings, context?: Record<string, string>): IApiSecurityOpenIdConnectSettings;
    /**
     * Serializes source maps, when available.
     */
    sourceMap(object: IAmfDocumentSourceMaps, context?: Record<string, string>): IApiDocumentSourceMaps | undefined;
    synthesizedField(object: IAmfSynthesizedField, context?: Record<string, string>): IApiSynthesizedField;
    parametrizedDeclaration(object: IAmfParametrizedDeclaration, context?: Record<string, string>): IApiParametrizedDeclaration;
    parametrizedTrait(object: IAmfParametrizedTrait, context?: Record<string, string>): IApiParametrizedTrait;
    parametrizedResourceType(object: IAmfParametrizedResourceType, context?: Record<string, string>): IApiParametrizedResourceType;
    variableValue(object: IAmfVariableValue, context?: Record<string, string>): IApiVariableValue;
    abstractDeclaration(object: IAmfAbstractDeclaration, context?: Record<string, string>): IApiAbstractDeclaration;
    /**
     * @param object The EndPoint to serialize as a list item.
     * @returns Serialized EndPoint as a list item.
     */
    endPointWithOperationsListItem(object: IAmfEndPoint, context?: Record<string, string>): IApiEndPointWithOperationsListItem;
    /**
     * @param object The Operation to serialize as a list item.
     * @param context A context to use. If not set, it looks for the context of the passed model
     * @returns Serialized Operation as a list item.
     */
    operationListItem(object: IAmfOperation, context?: Record<string, string>): IApiOperationListItem;
}
export {};
//# sourceMappingURL=AmfSerializer.d.ts.map