import { PrismaService } from "../../core/database/prisma/prisma.service";
import { ContainerHostService } from './services/container-host.service';
import { GiteaClientService } from './services/gitea-client.service';
import { InternalAppEventsService } from './services/events.service';
export declare class InternalAppAdminController {
    private readonly prisma;
    private readonly containerHost;
    private readonly giteaSvc;
    private readonly eventsSvc;
    private readonly logger;
    constructor(prisma: PrismaService, containerHost: ContainerHostService, giteaSvc: GiteaClientService, eventsSvc: InternalAppEventsService);
    private resolveAdminOrganizationId;
    listAllApps(req: {
        user?: {
            id?: string;
            userId?: string;
            organizationId?: string;
            currentOrganizationId?: string;
        };
    }, employeeSlug?: string, status?: string, pageRaw?: string, pageSizeRaw?: string): Promise<{
        items: {
            id: string;
            employeeSlug: string;
            appSlug: string;
            displayName: string | null;
            runtime: import("@prisma/client").$Enums.InternalAppRuntime;
            status: import("@prisma/client").$Enums.InternalAppStatus;
            url: string;
            giteaRepoFullName: string;
            lastDeployedAt: Date | null;
            destroyedAt: Date | null;
            retentionUntil: Date | null;
            forceDisabledAt: Date | null;
            forceDisabledReason: string | null;
            ownerEmail: string;
            ownerDisplayName: string;
        }[];
        total: number;
        page: number;
        pageSize: number;
    }>;
    forceDisable(appId: string, body: {
        reason?: string;
    }, req: {
        user?: {
            id?: string;
            userId?: string;
        };
    }): Promise<{
        appId: string;
        status: "DISABLED_ARCHIVED";
        forceDisabledAt: string;
        reason: string;
    }>;
    forceDestroy(appId: string, req: {
        user?: {
            id?: string;
            userId?: string;
        };
    }, reason?: string): Promise<{
        appId: string;
        status: "DESTROYED";
        destroyedAt: string;
        retentionUntil: string;
        reason: string | null;
    }>;
    listEvents(req: {
        user?: {
            id?: string;
            userId?: string;
            organizationId?: string;
            currentOrganizationId?: string;
        };
    }, appId?: string, employeeSlug?: string, actorRole?: string, eventType?: string, outcome?: string, from?: string, to?: string, page?: string, pageSize?: string): Promise<{
        items: import("./services/events.service").EventListItem[];
        total: number;
        page: number;
        pageSize: number;
    }>;
}
