import { Artifact } from './types';
export interface JWSHeader {
    alg: string;
    typ: string;
    kid: string;
}
export interface JWSPayload {
    iss: string;
    sub: string;
    iat: number;
    exp: number;
    artifact: any;
}
export interface JWSEnvelope {
    protected: string;
    payload: string;
    signature: string;
}
export declare abstract class Signer {
    abstract sign(artifact: Artifact): Promise<string>;
    abstract getKeyId(): string;
    abstract getPublicKeyJWK(): Promise<any>;
}
export declare class LocalSigner extends Signer {
    private privateKey;
    private publicKey;
    private keyId;
    constructor(privateKey?: CryptoKey);
    initialize(): Promise<void>;
    sign(artifact: Artifact): Promise<string>;
    getKeyId(): string;
    getPublicKeyJWK(): Promise<any>;
}
export declare function base64urlDecode(input: string): Uint8Array;
//# sourceMappingURL=signer.d.ts.map