import { M365UserActivityChangeField } from '@prisma/client';
export declare enum UsersSortBy {
    daysInactive = "daysInactive",
    lastAnyActivity = "lastAnyActivity",
    userPrincipalName = "userPrincipalName",
    updatedAt = "updatedAt"
}
export declare enum SortOrder {
    asc = "asc",
    desc = "desc"
}
export declare enum UsersFormat {
    json = "json",
    csv = "csv"
}
export declare class ListUsersQueryDto {
    inactiveDays?: number;
    accountAgeMinDays?: number;
    includeNeverSignedIn?: boolean;
    accountEnabled?: boolean;
    hasLicense?: boolean;
    licenseSkuPartNumber?: string;
    keyword?: string;
    missingFromLatestSync?: boolean;
    sortBy?: UsersSortBy;
    sortOrder?: SortOrder;
    page?: number;
    pageSize?: number;
    format?: UsersFormat;
}
export declare class UserTimelineQueryDto {
    limit?: number;
    field?: M365UserActivityChangeField;
    since?: string;
}
export declare class HistoryQueryDto {
    limit?: number;
    status?: string;
}
export interface InactiveDistribution {
    never: number;
    buckets: Array<{
        from: number;
        to: number | null;
        count: number;
    }>;
}
export interface ExecutionResultPayload {
    totalUsers: number;
    changedUsers: number;
    inactiveDistribution: InactiveDistribution;
}
