import { IApiDataExample, IApiPropertyShape, IShapeUnion } from './definitions/Shapes.js';
import { ShapeBase, IShapeRenderOptions } from './shape/ShapeBase.js';
export interface ISchemaExample extends IApiDataExample {
    /**
     * The value to render as the example value.
     */
    renderValue?: string | number | boolean | null | undefined;
    label?: string;
}
/**
 * A class that processes AMF's Shape to auto-generate a schema from examples/type for a given media type.
 * This should be used when examples for the Shape are not available but the application still needs to
 * render an example or a schema from the Shape.
 * If examples can be found directly in the shape, use the `ApiExampleGenerator` instead.
 */
export declare class ApiSchemaGenerator {
    mime: string;
    opts: Readonly<IShapeRenderOptions>;
    generator?: ShapeBase;
    /**
     *
     * @param mime The example mime type to format the generated example.
     * @param opts Optional configuration.
     */
    constructor(mime: string, opts?: IShapeRenderOptions);
    /**
     * @param shape The Shape definition
     * @param mime The mime type for the value.
     * @returns Customized Example with the `renderValue` that is the generated Example value.
     */
    static asExample(shape: IShapeUnion, mime: string, opts?: IShapeRenderOptions): ISchemaExample | undefined;
    /**
     * @param shape The Shape definition
     * @param mime The mime type for the value.
     * @returns The generated schema
     */
    static asSchema(shape: IShapeUnion, mime: string, opts?: IShapeRenderOptions): string | number | boolean | null | undefined;
    /**
     * Generates the schema from the AMF shape.
     *
     * @param shape The Shape definition
     */
    generate(shape: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined;
    /**
     * @link {#generate()}
     * @param shape The Shape definition
     */
    toValue(shape: IShapeUnion): string | number | boolean | null | undefined;
    /**
     * Generates an API Example object with the value to render.
     * @param shape The Shape definition
     * @returns Customized Example with the `renderValue` that is the generated Example value.
     */
    toExample(shape: IShapeUnion): ISchemaExample | undefined;
}
//# sourceMappingURL=ApiSchemaGenerator.d.ts.map