import { State } from '../shared/State';
export type Jose = {
    createJwkRsa(): Promise<JwkRsa>;
    getJwkRsaPublic(jwkJson: JwkRsa): Promise<JwkRsaPublic>;
    createJwks(...keys: JwkInterface[]): JwksInterface;
    createSignedJwtToken(payload: string | object, jwkJson: JwkRsa): Promise<any>;
    verifySignedJwtToken(jwt: string, jwkJson: JwkRsaPublic): Promise<any>;
};
declare const _default: (_state: State) => {
    createJwkRsa(): Promise<JwkRsa>;
    getJwkRsaPublic(jwkJson: JwkRsa): Promise<JwkRsaPublic>;
    createJwks(...keys: JwkInterface[]): JwksInterface;
    createSignedJwtToken(payload: string | object, jwkJson: JwkRsa): Promise<any>;
    verifySignedJwtToken(jwt: string, jwkJson: JwkRsaPublic): Promise<any>;
};
export default _default;
export interface JwkInterface {
    kty: string;
    use?: string;
    key_ops?: string[];
    alg: string;
    kid?: string;
    x5u?: string;
    x5c?: string;
    x5t?: string;
    'x5t#S256'?: string;
}
export type JwkRsa = JwkInterface & {
    d: string;
    dp: string;
    dq: string;
    e: string;
    n: string;
    p: string;
    q: string;
    qi: string;
};
export type JwkRsaPublic = JwkInterface & {
    e: string;
    n: string;
};
export interface JwksInterface {
    keys: JwkInterface[];
}
export declare function createJwkRsa(): Promise<JwkRsa>;
export declare function getJwkRsaPublic(jwkJson: JwkRsa): Promise<JwkRsaPublic>;
export declare function createJwks(...keys: JwkInterface[]): JwksInterface;
export declare function createSignedJwtToken(payload: string | object, jwkJson: JwkRsa): Promise<any>;
export declare function verifySignedJwtToken(jwt: string, jwkJson: JwkRsaPublic): Promise<any>;
//# sourceMappingURL=JoseOps.d.ts.map