import { type ApiSuccess } from '../../types/api/success';
export declare enum ManagedAgentActionType {
    FLAGGED_STALE = "flagged_stale",
    SOFT_DELETED = "soft_deleted",
    FLAGGED_BROKEN = "flagged_broken",
    FLAGGED_SLOW = "flagged_slow",
    FIXED_BROKEN = "fixed_broken",
    CREATED_CONTENT = "created_content",
    INSIGHT = "insight"
}
export declare enum ManagedAgentTargetType {
    CHART = "chart",
    DASHBOARD = "dashboard",
    SPACE = "space",
    PROJECT = "project"
}
export declare enum ManagedAgentScheduleOption {
    EVERY_6_HOURS = "every_6_hours",
    EVERY_12_HOURS = "every_12_hours",
    DAILY = "daily",
    EVERY_2_DAYS = "every_2_days",
    WEEKLY = "weekly"
}
export declare const ManagedAgentScheduleCronByOption: Record<ManagedAgentScheduleOption, string>;
export declare const getManagedAgentScheduleCron: (schedule?: ManagedAgentScheduleOption) => string;
export declare const getManagedAgentScheduleOption: (scheduleCron: string | null | undefined) => ManagedAgentScheduleOption;
export type ManagedAgentSettings = {
    projectUuid: string;
    enabled: boolean;
    schedule: ManagedAgentScheduleOption;
    enabledByUserUuid: string | null;
    slackChannelId: string | null;
    toolSettings: Record<string, boolean>;
    createdAt: Date;
    updatedAt: Date;
};
export type ManagedAgentActionUser = {
    userUuid: string;
    firstName: string;
    lastName: string;
};
export type ManagedAgentAction = {
    actionUuid: string;
    projectUuid: string;
    sessionId: string;
    actionType: ManagedAgentActionType;
    targetType: ManagedAgentTargetType;
    targetUuid: string;
    targetName: string;
    description: string;
    metadata: Record<string, unknown>;
    reversedAt: Date | null;
    reversedByUserUuid: string | null;
    reversedByUser: ManagedAgentActionUser | null;
    createdAt: Date;
};
export type ManagedAgentActionCategory = 'undo' | 'dismiss';
export declare const getManagedAgentActionCategory: (actionType: ManagedAgentActionType) => ManagedAgentActionCategory;
export type FixedBrokenActionMetadata = {
    previousVersionUuid: string;
};
export declare const getFixedBrokenMetadata: (metadata: Record<string, unknown>) => FixedBrokenActionMetadata | null;
export type UpdateManagedAgentSettings = {
    enabled?: boolean;
    schedule?: ManagedAgentScheduleOption;
    slackChannelId?: string | null;
    toolSettings?: Record<string, boolean>;
};
export type CreateManagedAgentAction = {
    projectUuid: string;
    sessionId: string;
    managedAgentRunUuid: string | null;
    actionType: ManagedAgentActionType;
    targetType: ManagedAgentTargetType;
    targetUuid: string;
    targetName: string;
    description: string;
    metadata: Record<string, unknown>;
};
export declare enum ManagedAgentRunStatus {
    STARTED = "started",
    COMPLETED = "completed",
    ERROR = "error"
}
export type ManagedAgentRunTriggeredBy = 'cron' | 'manual' | 'on_enable';
export type ManagedAgentRun = {
    runUuid: string;
    projectUuid: string;
    triggeredBy: ManagedAgentRunTriggeredBy;
    status: ManagedAgentRunStatus;
    sessionId: string | null;
    startedAt: Date;
    finishedAt: Date | null;
    actionCount: number;
    actionCountsByType: Partial<Record<ManagedAgentActionType, number>>;
    summary: string | null;
    error: string | null;
    currentActivity: string | null;
};
export type ApiManagedAgentRunResponse = ApiSuccess<ManagedAgentRun | null>;
export type ApiManagedAgentActionResponse = ApiSuccess<ManagedAgentAction>;
export type ManagedAgentRunsListResponse = {
    runs: ManagedAgentRun[];
    nextCursor: string | null;
};
export type ApiManagedAgentRunsListResponse = ApiSuccess<ManagedAgentRunsListResponse>;
export type ManagedAgentActionFilters = {
    date?: string;
    actionType?: ManagedAgentActionType;
    sessionId?: string;
    runUuid?: string;
};
//# sourceMappingURL=managedAgent.d.ts.map