Interface Plugin<T, P>

interface Plugin<
    T,
    P extends
    
            | InvertConditionProvider<T>
            | InvertIfElseProvider<T>
            | GuardClauseProvider<T>
            | EmbeddedLanguageProvider =
        | InvertConditionProvider<T>
        | InvertIfElseProvider<T>
        | GuardClauseProvider<T>
        | EmbeddedLanguageProvider,
> {
    capabilities: {
        embeddedLanguages?: boolean;
        guardClause?: boolean;
        invertCondition?: boolean;
        invertIfElse?: boolean;
    } & (P extends InvertConditionProvider<T> ? { invertCondition: true } : {}) & (
        P extends InvertIfElseProvider<T> ? { invertIfelse: true } : {}
    ) & (P extends GuardClauseProvider<T> ? { guardClause: true } : {}) & (
        P extends EmbeddedLanguageProvider ? { embeddedLanguages: true } : {}
    );
    documentSelector: DocumentSelector;
    provider: P;
}

Type Parameters

Properties

capabilities: {
    embeddedLanguages?: boolean;
    guardClause?: boolean;
    invertCondition?: boolean;
    invertIfElse?: boolean;
} & (P extends InvertConditionProvider<T> ? { invertCondition: true } : {}) & (
    P extends InvertIfElseProvider<T> ? { invertIfelse: true } : {}
) & (P extends GuardClauseProvider<T> ? { guardClause: true } : {}) & (
    P extends EmbeddedLanguageProvider ? { embeddedLanguages: true } : {}
)
documentSelector: DocumentSelector
provider: P