export interface DingTalkTool {
    name: string;
    description: string;
    requestTemplate: {
        method: string;
        url: string;
        headers?: Array<{
            key: string;
            value: string;
        }>;
    };
    args?: Array<{
        name: string;
        type: string;
        description: string;
        required?: boolean;
        position?: 'path' | 'query' | 'body';
        items?: any;
    }>;
}
export interface DingTalkConfig {
    name?: string;
    version?: string;
    description?: string;
    tools: DingTalkTool[];
}
export interface TokenCacheData {
    access_token: string;
    expires_in: number;
    expires_at: number;
    created_at: number;
    app_id?: string;
}
export interface ServerOptions {
    accessToken?: string;
    appId?: string;
    appSecret?: string;
    tokenCacheFile?: string;
    configPath?: string;
}
export interface HonorInfo {
    honorId: string;
    honorName: string;
    honorDesc: string;
    honorImgUrl: string;
    honorPendantImgUrl?: string;
}
export interface GrantHonorParams {
    honorId: string;
    senderUserId: string;
    grantReason: string;
    granterName: string;
    expirationTime?: number;
    noticeSingle?: boolean;
    noticeAnnouncer?: boolean;
    receiverUserIds: string[];
    openConversationIds?: string[];
}
export interface QueryOrgHonorsParams {
    nextToken: string;
    maxResults?: number;
}
export interface QueryUserHonorsParams {
    userId: string;
    nextToken: string;
    maxResults?: number;
}
export interface CreateOrgHonorParams {
    userId: string;
    medalName: string;
    medalDesc: string;
    medalMediaId: string;
    avatarFrameMediaId: string;
    defaultBgColor: string;
}
export interface RecallHonorParams {
    honorId: string;
    userId: string;
}
export interface HonorQueryResult {
    success: boolean;
    result: {
        nextToken?: string;
        openHonors?: HonorInfo[];
        honors?: Array<{
            grantHistory: Array<{
                senderUserid: string;
                grantTime: number;
            }>;
            honorId: string;
            honorName: string;
            honorDesc: string;
            expirationTime?: number;
        }>;
    };
}
export interface HonorGrantResult {
    success: boolean;
    result: {
        successUserIds: string[];
        failedUserIds: string[];
    };
}
export interface HonorCreateResult {
    success: boolean;
    result: {
        honorId: string;
    };
}
export interface HonorRecallResult {
    success: boolean;
    result: {
        honorId: string;
    };
}
//# sourceMappingURL=types.d.ts.map