export interface TokenPayload {
    id?: number;
    sub?: string;
    email?: string;
    role?: string;
    aud?: string;
    profile_id?: number;
    profile_role?: string;
    channel_id?: string;
    guid?: string;
    exp?: number;
}
export interface AuthorizationPayload {
    resources: Array<string>;
    token: string;
    path_params: any;
    query_params: any;
    body_params: any;
}
export interface OauthCreds {
    client_id: string;
    client_secret: string;
    token_endpoint: string;
}
export interface AccessToken {
    access_token: string;
    expires_in: number;
}
export interface CustomerAccessToken {
    access_token?: string;
    channel_id?: string;
    guid?: string;
    profile_id?: number;
    expires_in?: number;
    refreshed?: boolean;
}
export interface CustomerTokenPayload {
    profile_id: number;
    channel_id: string;
    guid: string;
}
export declare class ServiceToken {
    private oauthCreds;
    protected token: AccessToken;
    constructor(oauthCreds: OauthCreds);
    getToken(profile_id?: number): Promise<AccessToken>;
    private calculateExpirationTime;
    private isTokenValid;
    getCurrentToken(): string;
    private getTokenRequest;
    private resetToken;
}
