import type { IApiParameter } from '@api-client/core/amf/definitions/Api.js';
import type { IApiDataNodeUnion, IApiObjectNode, IApiScalarNode, IApiScalarShape, IApiShape, IShapeUnion } from '@api-client/core/amf/definitions/Shapes.js';
/**
 * Computes a data model for custom definition for the OAuth 2 scheme
 * According to the annotation published at
 * https://github.com/raml-org/raml-annotations/tree/master/annotations/security-schemes
 */
export declare class Oauth2RamlCustomData {
    readParams(properties: Record<string, IApiDataNodeUnion>): IApiParameter[];
    /**
     * Creates an IApiParameter for an annotation that has properties.
     * This expects the properties to be defined like RAML's type definition.
     */
    getProperty(definition: IApiObjectNode): IApiParameter;
    /**
     * Creates an IApiParameter for an annotation that has no properties but rather a simplified
     * notation of `propertyName: dataType`.
     */
    getPropertyScalar(definition: IApiScalarNode): IApiParameter;
    readSchema(property: IApiObjectNode): IShapeUnion | undefined;
    createTypedSchema(type: string, object: IApiObjectNode): IShapeUnion | undefined;
    createSchema(): IApiShape;
    createScalarSchema(object: IApiObjectNode, type: string): IApiScalarShape;
    /**
     * @param object
     * @param items The definition of the `items` property that corresponds to RAML's items property of an array
     */
    readSchemaType(object: IApiScalarNode, items?: IApiScalarNode): string;
    typeToSchemaType(type: string): string;
    /**
     * Checks whether the custom property represents an array.
     * @param type
     * @param items The definition of the `items` property that corresponds to RAML's items property of an array
     * @returns True when the schema is an array.
     */
    readIsSchemaArray(type: IApiScalarNode, items: IApiScalarNode): boolean;
}
//# sourceMappingURL=Oauth2RamlCustomData.d.ts.map