import { Knex } from 'knex';
import { LogProvider } from '../logger';
import { IEditableStrategy, IMinimalStrategyRow, IStrategy, IStrategyStore } from '../types/stores/strategy-store';
interface IStrategyRow {
    name: string;
    built_in: number;
    description: string;
    parameters: object[];
    deprecated: boolean;
    display_name: string;
}
export default class StrategyStore implements IStrategyStore {
    private db;
    private logger;
    constructor(db: Knex, getLogger: LogProvider);
    getAll(): Promise<IStrategy[]>;
    getEditableStrategies(): Promise<IEditableStrategy[]>;
    getStrategy(name: string): Promise<IStrategy>;
    delete(name: string): Promise<void>;
    deleteAll(): Promise<void>;
    count(): Promise<number>;
    destroy(): void;
    exists(name: string): Promise<boolean>;
    get(name: string): Promise<IStrategy>;
    rowToStrategy(row: IStrategyRow): IStrategy;
    rowToEditableStrategy(row: IStrategyRow): IEditableStrategy;
    eventDataToRow(data: any): IMinimalStrategyRow;
    createStrategy(data: any): Promise<void>;
    updateStrategy(data: any): Promise<void>;
    deprecateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>;
    reactivateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>;
    deleteStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>;
    importStrategy(data: any): Promise<void>;
    dropCustomStrategies(): Promise<void>;
}
export {};
