import Verify from './util/verify';
import Identification from './util/identification';
import Headers from './util/headers';
import Query from './util/query';
import Params from './util/params';
import Event from './util/event';
import Permissions from './util/permissions';
import ICrypt from './iCrypt';
import Sender from './util/sender';
export default class Mauth {
    protected verify?: {
        [type: string]: Verify;
    };
    protected keyless?: {
        [type: string]: Sender;
    };
    protected getPersonAndIdentifications?: (identification: Identification) => Promise<{
        person: {
            receivedItem: unknown;
        };
        identifications: Identification[];
    }>;
    private crypt?;
    constructor(getPersonAndIdentifications?: (identification: Identification) => Promise<{
        person: {
            receivedItem: unknown;
        };
        identifications: Identification[];
    }>, verify?: {
        [type: string]: Verify;
    }, keyless?: {
        [type: string]: Sender;
    }, crypt?: ICrypt);
    static getBearerAuthentication(bearer?: string): string | undefined;
    static checkAuthentication(req: {
        headers?: Headers;
        query?: Query;
        authorization?: string;
        auth?: string;
    }): string | undefined;
    static getAuthentication(req: {
        headers?: Headers;
        query?: Query;
        authorization?: string;
        auth?: string;
    }): string | undefined;
    selfRestriction(req: {
        authorization: string;
        query: Query;
        params?: Params;
        method?: string;
    }, _res: unknown, fn: (arg0: unknown) => Promise<unknown>): Promise<void>;
    signIn(identification: Identification, headers?: Headers): Promise<unknown>;
    checkToken(req: {
        query?: Query;
        headers?: Headers;
        authorization?: string;
        permissions?: Permissions;
        body?: Identification;
    }, _res: unknown, fn: (arg0: unknown) => unknown): Promise<void>;
    authentication(req: {
        query?: Query;
        headers?: Headers;
        authorization?: string;
        permissions?: Permissions;
        body?: Identification;
        method?: string;
    }, res: unknown, fn: (arg0: unknown) => unknown): Promise<void>;
    permission(req: {
        event: Event;
        permissions: Permissions;
        method: string;
    }, _res: unknown, fn: (arg0: unknown) => Promise<unknown>): Promise<void>;
}
//# sourceMappingURL=mauth.d.ts.map