import type { ApiKeyAuthContext } from "../common/auth/auth.types";
import { ApiKeyService } from "./api-key.service";
import { CreateApiKeyDto } from "./dto/create-api-key.dto";
export declare class ApiKeyController {
    private readonly service;
    constructor(service: ApiKeyService);
    create(auth: ApiKeyAuthContext, dto: CreateApiKeyDto): Promise<{
        secret: string;
        type: import("@prisma/client").$Enums.ApiKeyType;
        id: string;
        createdAt: Date;
        prefix: string;
        environment: import("@prisma/client").$Enums.ApiKeyEnvironment;
        scope: import("@prisma/client").$Enums.ApiKeyScope;
        label: string | null;
    }>;
    list(auth: ApiKeyAuthContext): Promise<{
        type: import("@prisma/client").$Enums.ApiKeyType;
        id: string;
        createdAt: Date;
        prefix: string;
        environment: import("@prisma/client").$Enums.ApiKeyEnvironment;
        scope: import("@prisma/client").$Enums.ApiKeyScope;
        label: string | null;
        lastUsedAt: Date | null;
        revokedAt: Date | null;
    }[]>;
    revoke(auth: ApiKeyAuthContext, id: string): Promise<{
        type: import("@prisma/client").$Enums.ApiKeyType;
        id: string;
        createdAt: Date;
        merchantId: string;
        prefix: string;
        environment: import("@prisma/client").$Enums.ApiKeyEnvironment;
        scope: import("@prisma/client").$Enums.ApiKeyScope;
        label: string | null;
        hash: string;
        lastUsedAt: Date | null;
        revokedAt: Date | null;
    }>;
}
