import { Repository } from 'typeorm';
import { ApiTokenEntity } from '../entities/api-token.entity';
import { CloudProvider } from '../../providers/enums/cloud-provider.enum';
import { CredentialType } from '../../management/entities/credentials.entity';
import { CredentialPurpose } from '../enums/credential-purpose.enum';
export declare class ApiTokenRepository {
    private readonly apiTokenRepo;
    constructor(apiTokenRepo: Repository<ApiTokenEntity>);
    createToken(provider: CloudProvider, label: string, notes: string | null, encryptedToken: string, options?: {
        credentialType?: CredentialType;
        encryptedAccessKey?: string;
        expiresAt?: Date;
        purpose?: CredentialPurpose;
    }): Promise<ApiTokenEntity>;
    findAll(): Promise<ApiTokenEntity[]>;
    findById(id: string): Promise<ApiTokenEntity | null>;
    updateLastUsed(id: string): Promise<void>;
    getEncryptedToken(id: string): Promise<string>;
    getEncryptedAccessKey(id: string): Promise<string | null>;
    updateExpiry(id: string, expiresAt: Date | null): Promise<void>;
    deleteToken(id: string): Promise<void>;
    findByProvider(provider: CloudProvider): Promise<ApiTokenEntity[]>;
    findByProviderAndPurpose(provider: CloudProvider, purpose: CredentialPurpose): Promise<ApiTokenEntity[]>;
}
