import type { Response } from 'express';
import Controller from '../controller.js';
import type { IAuthRequest } from '../unleash-types.js';
import type { IUnleashConfig } from '../../types/option.js';
import { ApiTokenType } from '../../types/model.js';
import type { IUnleashServices } from '../../services/index.js';
import { type ApiTokensSchema } from '../../openapi/spec/api-tokens-schema.js';
import { type ApiTokenSchema } from '../../openapi/spec/api-token-schema.js';
import type { UpdateApiTokenSchema } from '../../openapi/spec/update-api-token-schema.js';
import type { CreateApiTokenSchema } from '../../internals.js';
interface TokenParam {
    token: string;
}
interface TokenNameParam {
    name: string;
}
export declare const tokenTypeToCreatePermission: (tokenType: ApiTokenType) => string;
export declare class ApiTokenController extends Controller {
    private apiTokenService;
    private accessService;
    private frontendApiService;
    private openApiService;
    private logger;
    private flagResolver;
    constructor(config: IUnleashConfig, { apiTokenService, accessService, frontendApiService, openApiService, }: Pick<IUnleashServices, 'apiTokenService' | 'accessService' | 'frontendApiService' | 'openApiService'>);
    getAllApiTokens(req: IAuthRequest, res: Response<ApiTokensSchema>): Promise<void>;
    getApiTokensByName(req: IAuthRequest<TokenNameParam>, res: Response<ApiTokensSchema>): Promise<void>;
    createApiToken(req: IAuthRequest<CreateApiTokenSchema>, res: Response<ApiTokenSchema>): Promise<any>;
    updateApiToken(req: IAuthRequest<TokenParam, void, UpdateApiTokenSchema>, res: Response): Promise<any>;
    deleteApiToken(req: IAuthRequest<TokenParam>, res: Response): Promise<void>;
    private accessibleTokensByName;
    private accessibleTokens;
}
export {};
//# sourceMappingURL=api-token.d.ts.map