import { PrismaService } from "../../core/database/prisma/prisma.service";
import { InternalAppPlatformService } from './internal-app-platform.service';
import { InternalAppTokenService } from './services/token.service';
import { InternalAppEventsService } from './services/events.service';
export declare class InternalAppPlatformController {
    private readonly platformSvc;
    private readonly tokenSvc;
    private readonly prisma;
    private readonly eventsSvc;
    private readonly logger;
    constructor(platformSvc: InternalAppPlatformService, tokenSvc: InternalAppTokenService, prisma: PrismaService, eventsSvc: InternalAppEventsService);
    private requireEmployeeSlug;
    issueToken(req: {
        user?: {
            id?: string;
            userId?: string;
            email?: string;
            username?: string;
            mailNickname?: string;
            organizationId?: string;
            currentOrganizationId?: string;
        };
    }): Promise<import("./services/token.service").IssuedToken>;
    revokeToken(req: {
        user?: {
            id?: string;
            userId?: string;
            employeeSlug?: string;
        };
    }, body: {
        confirmText?: string;
    }): Promise<{
        revokedAt: string | null;
    }>;
    getMyTokenStatus(req: {
        user?: {
            id?: string;
            userId?: string;
            employeeSlug?: string;
        };
    }): Promise<{
        hasToken: boolean;
        status: import("@prisma/client").$Enums.InternalAppTokenStatus;
        prefix: string;
        issuedAt: string;
        expiresAt: string;
        expiringInDays: number | null;
        lastUsedAt: string | null;
    } | {
        hasToken: boolean;
        status: null;
        prefix: null;
        issuedAt: null;
        expiresAt: null;
        expiringInDays: null;
        lastUsedAt: null;
    }>;
    listMyApps(req: {
        user?: {
            id?: string;
            userId?: string;
            employeeSlug?: string;
        };
    }, includeDestroyed?: string): Promise<{
        apps: {
            displayName: string | null;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.InternalAppStatus;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            runtime: import("@prisma/client").$Enums.InternalAppRuntime;
            url: string;
            retentionUntil: Date | null;
            employeeSlug: string;
            appSlug: string;
            giteaRepoFullName: string;
            lastDeployedAt: Date | null;
            currentDeploymentId: string | null;
            destroyedAt: Date | null;
            forceDisabledAt: Date | null;
            forceDisabledReason: string | null;
            forceDisabledById: string | null;
        }[];
    }>;
    listMyEvents(req: {
        user?: {
            id?: string;
            userId?: string;
            organizationId?: string;
            currentOrganizationId?: string;
        };
    }, appId?: string, eventType?: string, from?: string, to?: string, page?: string, pageSize?: string): Promise<{
        items: {
            actorEmail: string | null;
            id: string;
            appId: string | null;
            appSlug: string | null;
            employeeSlug: string | null;
            actorId: string | null;
            actorRole: import("./services/events.service").ActorRole;
            eventType: string;
            outcome: import("./services/events.service").EventOutcome;
            errorCode: string | null;
            durationMs: number | null;
            payload: Record<string, unknown>;
            ipAddr: string | null;
            createdAt: Date;
        }[];
        total: number;
        page: number;
        pageSize: number;
    }>;
}
