export interface PollProps { userid: string | undefined, activePollId: string, pollData: PollData, addOption: (name: string) => void, vote: (optionName: string) => void } export interface PollListProps { userid: string | undefined, } export interface PollMetadata { createdAt: number; // Unix timestamp in milliseconds duration: number; // Duration in milliseconds createdBy: string; } export interface PollData { [key: string]: SignedData[] | SignedData | undefined; } export interface SignedData { data: T, signature: string } export interface VoteData { userid: string, timestamp: string } export interface OptionData { userid: string, timestamp: string, optionName: string } export interface UserData { userid: string, private_key: CryptoKey | undefined, public_key: CryptoKey | undefined }