¿Cómo exportar e importar funciones y ejecutarlas con MEF?

Estoy creando una aplicación que importa varios complementos. Necesito la capacidad de ejecutar funciones que se implementan en cada uno de los complementos. Por ejemplo, necesito hacer algo como esto.

/////////////////////////////////////////////////////////////////////////////////
MainApp:
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions1 { get; set; }

[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions2 { get; set; }

foreach (f1 in PluginFunctions1)
{
   f1();  // execute Function1 from each plugin
}

foreach (f2 in PluginFunctions2)
{
   string result = f2(val);  // execute Function2 from each plugin
}

/////////////////////////////////////////////////////////////////////////////////
Plugin:
[export(?)]
public void Function1()
{
}

[export(?)]
public string Function2(string value)
{
    return result;
}
/////////////////////////////////////////////////////////////////////////////////

El problema es que no estoy seguro de cómo definir la importación y exportación y cómo ejecutar exactamente la función.