import(formattable)
importFrom("knitr", "kable")
importFrom("utils", "read.table")
importFrom("fields", "image.plot")
import(data.table)
importFrom("grDevices", "hcl.colors")
importFrom("graphics", "axis", "mtext", "par", "text")
importFrom("stats", "median")

export(
    count.votes,
    stv,
    approval,
    plurality,
    score,
    condorcet,
    tworound.runoff,
    invalid.votes,
    valid.votes,
    corrected.votes,
    correct.ranking,
    view,
    complete.ranking,
    impute.ranking,
    ordered.preferences,
    ordered.tiebreak,
    remove.candidate,
    vote.matrix
)

# register S3 methods
S3method(summary, vote.stv)
S3method(print, summary.vote.stv)
S3method(view, vote.stv)
S3method(plot, vote.stv)
S3method(image, vote.stv)
S3method(summary, vote.approval)
S3method(print, summary.vote.approval)
S3method(view, vote.approval)
S3method(summary, vote.plurality)
S3method(print, summary.vote.plurality)
S3method(view, vote.plurality)
S3method(summary, vote.score)
S3method(print, summary.vote.score)
S3method(view, vote.score)
S3method(summary, vote.condorcet)
S3method(print, summary.vote.condorcet)
S3method(view, vote.condorcet)
S3method(image, vote.condorcet)
S3method(summary, vote.tworound.runoff)
S3method(view, vote.tworound.runoff)
S3method(image, vote.tworound.runoff)
S3method(print, summary.vote.tworound.runoff)
S3method(complete.ranking, vote.stv)
S3method(`[`, vote.matrix)
