import * as param from './param.js';
import * as result from './result.js';
import { BytesType, ConstantType, Docs, LiteralValue, MapType, ModelType, PolymorphicType, PossibleType, PrimitiveType, SliceType, TimeType } from './type.js';
export interface MethodExample {
    name: string;
    docs: Docs;
    filePath: string;
    parameters: Array<ParameterExample>;
    optionalParamsGroup: Array<ParameterExample>;
    responseEnvelope?: ResponseEnvelopeExample;
}
export interface ParameterExample {
    parameter: param.Parameter;
    value: ExampleType;
}
export interface ResponseEnvelopeExample {
    response: result.ResponseEnvelope;
    headers: Array<ResponseHeaderExample>;
    result: ExampleType;
}
export interface ResponseHeaderExample {
    header: result.HeaderResponse | result.HeaderMapResponse;
    value: ExampleType;
}
export type ExampleType = StringExample | NumberExample | BooleanExample | NullExample | AnyExample | ArrayExample | DictionaryExample | StructExample;
export interface StringExample {
    kind: 'string';
    value: string;
    type: ConstantType | BytesType | LiteralValue | TimeType | PrimitiveType;
}
export interface NumberExample {
    kind: 'number';
    value: number;
    type: ConstantType | LiteralValue | TimeType | PrimitiveType;
}
export interface BooleanExample {
    kind: 'boolean';
    value: boolean;
    type: ConstantType | LiteralValue | PrimitiveType;
}
export interface NullExample {
    kind: 'null';
    value: null;
    type: PossibleType;
}
export interface AnyExample {
    kind: 'any';
    value: any;
    type: PossibleType;
}
export interface ArrayExample {
    kind: 'array';
    value: Array<ExampleType>;
    type: SliceType;
}
export interface DictionaryExample {
    kind: 'dictionary';
    value: Record<string, ExampleType>;
    type: MapType;
}
export interface StructExample {
    kind: 'model';
    value: Record<string, ExampleType>;
    additionalProperties?: Record<string, ExampleType>;
    type: ModelType | PolymorphicType;
}
export declare class MethodExample implements MethodExample {
    constructor(name: string, docs: Docs, filePath: string);
}
export declare class ParameterExample implements ParameterExample {
    constructor(parameter: param.Parameter, value: ExampleType);
}
export declare class ResponseEnvelopeExample implements ResponseEnvelopeExample {
    constructor(response: result.ResponseEnvelope);
}
export declare class ResponseHeaderExample implements ResponseHeaderExample {
    constructor(header: result.HeaderResponse | result.HeaderMapResponse, value: ExampleType);
}
export declare class StringExample implements StringExample {
    constructor(value: string, type: ConstantType | BytesType | LiteralValue | TimeType | PrimitiveType);
}
export declare class NumberExample implements NumberExample {
    constructor(value: number, type: ConstantType | LiteralValue | TimeType | PrimitiveType);
}
export declare class BooleanExample implements BooleanExample {
    constructor(value: boolean, type: ConstantType | LiteralValue | PrimitiveType);
}
export declare class NullExample implements NullExample {
    constructor(type: PossibleType);
}
export declare class AnyExample implements AnyExample {
    constructor(value: any);
}
export declare class ArrayExample implements ArrayExample {
    constructor(type: SliceType);
}
export declare class DictionaryExample implements DictionaryExample {
    constructor(type: MapType);
}
export declare class StructExample implements StructExample {
    constructor(type: ModelType | PolymorphicType);
}
//# sourceMappingURL=examples.d.ts.map