import { Method } from "../../Joinpoints.js";
export declare abstract class Algorithm {
    static readonly PACKAGE = "autotuner.algorithm.";
    static readonly PROVIDER_PACKAGE: string;
    lambda: string | undefined;
    id: string | undefined;
    abstract getAlgorithm(): string;
    getSupplier(): string;
}
export declare class SimpleAlgorithm extends Algorithm {
    constructor(lambda: string | Method, id?: string);
    getAlgorithm(): string;
    instance(): string;
}
export declare class AlgorithmWithKnob extends Algorithm {
    knobConsumer: string;
    configSupplier: string;
    constructor(lambda: string, id: string, knobConsumer: string, configSupplier: string);
    getAlgorithm(): string;
}
export declare class AdaptiveAlgorithm extends Algorithm {
    provider: string;
    constructor(id: string, $targetMethod: Method, templateName: string, provider: string);
    getAlgorithm(): string;
}
export declare class GenerativeAlgorithm extends Algorithm {
    provider: string;
    extraArg: string;
    providerType: string | undefined;
    $interface: Method;
    constructor(id: string, $interface: Method, templateName: string, provider: string, providerType: string, extraArg: string);
    getAlgorithm(): string;
}
//# sourceMappingURL=Algorithm.d.ts.map