import Foundation
import UIKit
import AsyncDisplayKit
import Display

public protocol NotificationItem {
    var groupingKey: AnyHashable? { get }
    
    func node(compact: Bool) -> NotificationItemNode
    func tapped(_ take: @escaping () -> (ASDisplayNode?, () -> Void))
    func canBeExpanded() -> Bool
    func expand(_ take: @escaping () -> (ASDisplayNode?, () -> Void))
}

public class NotificationItemNode: ASDisplayNode {
    func updateLayout(width: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat {
        return 32.0
    }
}