import { Constructor } from '@adonisjs/core/types/common';
import { AKAuthUserInfered } from '../auth/types.js';
import { AKUserModel } from '../auth/user/user.js';
import { AKDeviceTokenClass, AKDeviceTokenType } from './device_token.js';
export type AKDeviceTokenService<UserModel extends typeof AKUserModel> = {
    assign(token: string, type: AKDeviceTokenType, toUser: AKAuthUserInfered): Promise<void>;
    unassign(token: string, toUser: AKAuthUserInfered): Promise<void>;
    list(forUser: AKAuthUserInfered, type?: AKDeviceTokenType): Promise<InstanceType<AKDeviceTokenClass<UserModel>>[]>;
    sendTest(toUser: AKAuthUserInfered): Promise<void>;
    deleteTokens(tokens: string[]): Promise<string[]>;
};
export declare const deviceTokenService: <UserModel extends typeof AKUserModel>(userModel: UserModel) => Constructor<AKDeviceTokenService<UserModel>>;
