import { OasMappedOperation } from 'src/oas';
import { PostmanMappedOperation } from '../postman';
import { FuzzingSchemaItems, IntegrationTest, OverwriteQueryParamConfig, OverwriteRequestBodyConfig, OverwriteRequestHeadersConfig, VariationConfig, VariationTestConfig } from '../types';
import { TestSuite, VariationWriter } from './';
import { OpenAPIV3 } from 'openapi-types';
export type FuzzerOptions = {
    testSuite: TestSuite;
    variationWriter: VariationWriter;
};
export declare class Fuzzer {
    testSuite: TestSuite;
    variationWriter: VariationWriter;
    fuzzVariations: any[];
    constructor(options: FuzzerOptions);
    injectFuzzRequestBodyVariations(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null): void;
    injectFuzzRequestQueryParamsVariations(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null): void;
    injectFuzzRequestHeadersVariations(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null): void;
    injectFuzzRequiredVariation(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null, fuzzItems: FuzzingSchemaItems | null, requestBodyExamples?: unknown[]): void;
    private filterRequestBodyExamples;
    injectFuzzMinimumVariation(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null, fuzzItems: FuzzingSchemaItems | null): void;
    injectFuzzMaximumVariation(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null, fuzzItems: FuzzingSchemaItems | null): void;
    injectFuzzMinLengthVariation(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null, fuzzItems: FuzzingSchemaItems | null): void;
    injectFuzzMaxLengthVariation(pmOperation: PostmanMappedOperation, oaOperation: OasMappedOperation | null, variation: VariationConfig, variationMeta: VariationTestConfig | IntegrationTest | null, fuzzItems: FuzzingSchemaItems | null): void;
    analyzeFuzzJsonSchema(originalJsonSchema: OpenAPIV3.SchemaObject | undefined): FuzzingSchemaItems | null;
    analyzeQuerySchema(queryParam: OpenAPIV3.ParameterObject | undefined): FuzzingSchemaItems | null;
    analyzeHeaderSchema(header: OpenAPIV3.ParameterObject | undefined): FuzzingSchemaItems | null;
    addOverwriteRequestBody(variation: VariationConfig, fuzzRequestBody: OverwriteRequestBodyConfig): VariationConfig;
    addOverwriteRequestQueryParam(variation: VariationConfig, fuzzRequestQueryParam: OverwriteQueryParamConfig): VariationConfig;
    addOverwriteRequestHeader(variation: VariationConfig, fuzzRequestHeader: OverwriteRequestHeadersConfig): VariationConfig;
}
