import { type Scenario, type CreateScenarioInput, type UpdateScenarioInput, type ScenarioFilter } from "../types/index.js";
export declare function createScenario(input: CreateScenarioInput): Scenario;
export declare function getScenario(id: string): Scenario | null;
export declare function getScenarioByShortId(shortId: string): Scenario | null;
export declare function listScenarios(filter?: ScenarioFilter): Scenario[];
export declare function updateScenario(id: string, input: UpdateScenarioInput, version: number): Scenario;
export declare function countScenarios(filter?: ScenarioFilter): number;
export interface StaleScenario extends Scenario {
    lastRunAt: string | null;
}
export declare function findStaleScenarios(days: number): StaleScenario[];
export declare function updateScenarioPassedCache(id: string, url: string): void;
export declare function deleteScenario(id: string): boolean;
export type UpsertScenarioResult = {
    scenario: Scenario;
    action: "created" | "updated" | "deduped";
};
/**
 * Create or update a scenario by name+projectId to prevent duplicates.
 * If a scenario with the same name and projectId exists, updates it (no version check).
 * Returns the scenario and whether it was created, updated, or deduped (identical content).
 */
export declare function upsertScenario(input: CreateScenarioInput & {
    name: string;
}): UpsertScenarioResult;
//# sourceMappingURL=scenarios.d.ts.map