import type { Context } from 'koa';
import { errors } from '@strapi/utils';
import '@strapi/types';
/**
 * Authenticate an admin token. Rejects tokens with kind !== 'admin'.
 */
export declare const authenticate: (ctx: Context) => Promise<{
    authenticated: false;
    error?: InstanceType<typeof errors.UnauthorizedError>;
} | {
    authenticated: true;
    credentials: import("../../../shared/contracts/admin-token").AdminApiToken;
    user: import("../../../shared/contracts/shared").AdminUser;
    ability: import("@casl/ability").Ability;
} | {
    authenticated: boolean;
}>;
/**
 * Re-check presence and expiry at verify time.
 * Authorization is handled by isAuthenticatedAdmin + hasPermissions policies.
 *
 * @type {import('.').VerifyFunction}
 */
export declare const verify: (auth: any) => void;
declare const _default: {
    name: string;
    authenticate: (ctx: Context) => Promise<{
        authenticated: false;
        error?: InstanceType<typeof errors.UnauthorizedError>;
    } | {
        authenticated: true;
        credentials: import("../../../shared/contracts/admin-token").AdminApiToken;
        user: import("../../../shared/contracts/shared").AdminUser;
        ability: import("@casl/ability").Ability;
    } | {
        authenticated: boolean;
    }>;
    verify: (auth: any) => void;
};
export default _default;
//# sourceMappingURL=admin-token.d.ts.map