import { TrustedOAuth2JwtGrantJsonWebKey } from './TrustedOAuth2JwtGrantJsonWebKey';
/**
 * OAuth2 JWT Bearer Grant Type Issuer Trust Relationship
 * @export
 * @interface TrustedOAuth2JwtGrantIssuer
 */
export interface TrustedOAuth2JwtGrantIssuer {
    /**
     * The "allow_any_subject" indicates that the issuer is allowed to have any principal as the subject of the JWT.
     * @type {boolean}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    allow_any_subject?: boolean;
    /**
     * The "created_at" indicates, when grant was created.
     * @type {Date}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    created_at?: Date;
    /**
     * The "expires_at" indicates, when grant will expire, so we will reject assertion from "issuer" targeting "subject".
     * @type {Date}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    expires_at?: Date;
    /**
     *
     * @type {string}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    id?: string;
    /**
     * The "issuer" identifies the principal that issued the JWT assertion (same as "iss" claim in JWT).
     * @type {string}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    issuer?: string;
    /**
     *
     * @type {TrustedOAuth2JwtGrantJsonWebKey}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    public_key?: TrustedOAuth2JwtGrantJsonWebKey;
    /**
     * The "scope" contains list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749])
     * @type {Array<string>}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    scope?: Array<string>;
    /**
     * The "subject" identifies the principal that is the subject of the JWT.
     * @type {string}
     * @memberof TrustedOAuth2JwtGrantIssuer
     */
    subject?: string;
}
/**
 * Check if a given object implements the TrustedOAuth2JwtGrantIssuer interface.
 */
export declare function instanceOfTrustedOAuth2JwtGrantIssuer(value: object): value is TrustedOAuth2JwtGrantIssuer;
export declare function TrustedOAuth2JwtGrantIssuerFromJSON(json: any): TrustedOAuth2JwtGrantIssuer;
export declare function TrustedOAuth2JwtGrantIssuerFromJSONTyped(json: any, ignoreDiscriminator: boolean): TrustedOAuth2JwtGrantIssuer;
export declare function TrustedOAuth2JwtGrantIssuerToJSON(json: any): TrustedOAuth2JwtGrantIssuer;
export declare function TrustedOAuth2JwtGrantIssuerToJSONTyped(value?: TrustedOAuth2JwtGrantIssuer | null, ignoreDiscriminator?: boolean): any;
//# sourceMappingURL=TrustedOAuth2JwtGrantIssuer.d.ts.map