apptise-core
Version:
Core library for Apptise unified notification system
62 lines • 1.93 kB
TypeScript
import { NotificationPlugin } from '../base/plugin.js';
import type { NotificationMessage, NotificationResult, PluginConfig, PluginRegistration } from '../base/types.js';
/**
* Feishu notification plugin
*
* Supports the following URL formats (templates):
* - {schema}://{token}
*
* Where schema is 'feishu'
*
* @example
* ```typescript
* const plugin = new FeishuPlugin();
* const config = plugin.parseUrl('feishu://your-token');
* const result = await plugin.send(config, {
* title: 'Test Title',
* body: 'Test message content'
* });
* ```
*/
export declare class FeishuPlugin extends NotificationPlugin {
readonly registration: PluginRegistration;
private readonly serviceConfig;
private readonly templates;
private readonly templateTokens;
private readonly templateArgs;
/**
* Parse Feishu URL and extract configuration
*
* Supports template:
* - {schema}://{token}
*
* @param url - The Feishu URL to parse
* @returns Plugin configuration
* @throws {Error} When URL format is invalid
*/
parseUrl(url: string): PluginConfig;
/**
* Send notification to Feishu
*
* @param config - Plugin configuration
* @param message - Notification message
* @returns Notification result
*/
send(config: PluginConfig, message: NotificationMessage): Promise<NotificationResult>;
/**
* Validate Feishu plugin configuration
*
* @param config - Plugin configuration to validate
* @returns True if configuration is valid
*/
validateConfig(config: PluginConfig): boolean;
/**
* Validate notification message for Feishu
*
* @param message - Notification message to validate
* @returns True if message is valid
*/
validateMessage(message: NotificationMessage): boolean;
}
export declare const feishuPlugin: FeishuPlugin;
//# sourceMappingURL=feishu.d.ts.map