import { IRequestLog } from './RequestLog.js';
export declare const Kind = "Core#ProjectExecution";
export interface IProjectExecutionIteration {
    /**
     * The index of the iteration.
     */
    index: number;
    /**
     * The list of requests executed in the iteration.
     */
    executed: IRequestLog[];
    /**
     * The variables evaluated during the run.
     * These variables have values set by requests' HTTP flows.
     */
    variables: Record<string, string>;
    /**
     * Optional general error message.
     */
    error?: string;
}
export interface IProjectExecutionLog {
    /**
     * The timestamp when the execution started
     */
    started: number;
    /**
     * The timestamp when the execution ended
     */
    ended: number;
    /**
     * The execution logs for each iteration.
     */
    iterations: IProjectExecutionIteration[];
}
export interface IProjectExecution extends IProjectExecutionLog {
    kind: typeof Kind;
    /**
     * The key of the execution entry. This is generated by the store. Client value is ignored.
     */
    key: string;
    /**
     * The key of the parent project.
     */
    project: string;
    /**
     * The key of the parent folder, if any.
     */
    parent?: string;
    /**
     * The application id that generated the entry.
     */
    app: string;
    /**
     * The user id that made that request.
     * This is only available when the store support multi-user environment.
     */
    user?: string;
    /**
     * A timestamp of the midnight when the object was created.
     */
    midnight: number;
}
export declare class ProjectExecution implements IProjectExecution {
    kind: typeof Kind;
    /**
     * The key of the execution entry. This is generated by the store. Client value is ignored.
     */
    key: string;
    /**
     * The key of the parent project.
     */
    project: string;
    /**
     * The key of the parent folder, if any.
     */
    parent?: string;
    /**
     * The application id that generated the entry.
     */
    app: string;
    /**
     * The user id that made that request.
     * This is only available when the store support multi-user environment.
     */
    user?: string;
    /**
     * @param value The timestamp of the midnight when the request object was updated
     */
    set midnight(value: number | undefined);
    /**
     * @returns The timestamp of the midnight when the request object was updated
     */
    get midnight(): number;
    private midnightInternal;
    /**
     * The timestamp when the execution started
     */
    started: number;
    /**
     * The timestamp when the execution ended
     */
    ended: number;
    /**
     * The execution logs for each iteration.
     */
    iterations: IProjectExecutionIteration[];
    constructor(input?: string | IProjectExecution);
    new(init: IProjectExecution): void;
    toJSON(): IProjectExecution;
    /**
     * @returns The default value for the midnight when the request was last updated.
     */
    defaultMidnight(): number;
}
//# sourceMappingURL=ProjectExecution.d.ts.map